I forgot to mention the stalling part. If the EGR part is good, with the engine at operating temp, pull the Idle Air Control motor (IAC) connector. If the engine stalls, or drops below 500 rpms, you need to adjust the minimum (base) idle. Do this by leaving the IAC connector off the motor, engine running, turn the screw that acts as a throttle stop on the throttle housing.
First make sure no vacuum leaks from vacuum hoses or devices, then clean the sludge from the throttle plates and bore.
Use choke cleaner on a rag, not directly to the plate and bore area.
After that, start the engine, make sure its warm, turn the throttle stop screw until the engine reads 550-650 rpms. You will have to throttle up and release it to be sure you are in that ballpark rpm.
Shut off engine, plug in IAC connector to the motor, start up engine, and let it idle. If it acts strange, idle wise, you may have to disconnect the battery cables and hold them together for a couple minutes. That will dump all the "bad habbits" the computer has picked up. Then reconnect the cables, and drive it.
Hope this helps.