Running ruff

We have a 1995 Chevy blazer 4.3, automatic and it is OBD II with high mileage. The check engine light is a permanent fixture one the dash, most of the time the code comes up the EGR valve. We have replaced it 3 times and the light is still on. We have also replaced the crank sensor, the cam sensor and idle air control valve. We did the general tune up, plugs wires , cap, rotor, etc. a few months ago. Had it to several garages, talked to different mechanics and every sensor they suggest has already been replaced. This light has been on and off for the last three years and has been running fine just can?t find what to do to keep it off. I?m pretty sure all the sensors have been replaced by now. That?s not even why I?m writing just a brief history.

About 2 weeks ago it did start running ruff. Highway driving it runs fine. When I get stuck in traffic or at a traffic light not moving it runs ruff, the RPM?s drop and if I sit for more then a minutes not moving the check engine light sometimes start flashing and I smell gas. If I drop it into neutral it?s not as ruff and so far haven?t noticed the gas smell. It starts hard and I sometimes smell gas, new starter about a year ago, Our next step is looking at the fuel pressure regulator, the fuel injectors or the timing. Any suggestions besides a new vehicle, can?t afford it besides we replaced almost everything , it?s almost a new car. LOL. HELP. I would of loved to call your show but since I work Saturdays it makes is a little difficult. I do listen to your pod cast on my days off, thank you for being informative and entertaining keep up the good work.