RE: spark knock, I don't see anywhere that you have mentioned checking or setting the base timing. Engine fully warmed up so that it's at normal idle, disconnect tan/black wire which on your '89 you will find a disconnect for it hiding in the general area of the black plastic electrical center cover on passenger side firewall, use timing light to set for 0° BTDC, snug it back down and re-check before reconnecting wire. After reconnection timing should advance considerably, usually 12° or so, enough that you may not be able to see it on the marker unless you have a dialback style timing light.
If still pinging after setting base timing correctly, time to inspect vacuum and electrical connections for the EGR valve and test the valve. Let us know which kind it has; the regular negative backpressure type has a small solenoid on a bracket at the passenger side of the TBI, vacuum inlet at the front and output at the rear along with a smooth connection with nothing on it (vent; originally had a small foam filter almost always gone by now) - it's easy to test this setup if you have a hand vacuum pump like a Mityvac. If it's got the port EGR with the finned solenoid that's a different scenario and I'll have to look up some testing for you as I've pretty much never had to mess with those.
Also, confirm 100% the engine is not overheating as that will cause spark knock too.
Richard