1st - Welcome aboard to Stangnet.
2nd - How do you know your car is actually running rich ?

Gonna need answers to a few questions to help you further troubleshoot this...
What kind of shop did you have the car at? Did they get an air-fuel ratio reading for the car? If so, what was the engine's air-fuel ratio across the RPM range? Did they put it on a dyno or anything or how did they datalog the air/fuel ?
If you have already swapped all 8 COPS (coil-on-plugs) and all 4 of your O2 sensors (2 front, 2 rear), you have already thrown quite a few parts (and money) at the problem. I'm guessing you have changed all 8 sparkplugs as well? Were they the correct gap?
Did you or the shop try changing one COP at a time to see if the misfire code "followed" the bad COP around to a different cylinder ?
Also, are you the original owner of the car? What is the complete modification list for the car?
Does the car have a prior custom tune on it or has the factory ECU/computer been re-programmed ? Still have the stock 24lb fuel injectors or are they bigger sized ones (did previous owner run forced induction) ?
FWIW - Swapping to an aftermarket midpipe does not "cause" the engine to run rich - common misconception. Your rear O2 sensors are only there to monitor for the presence of a voltage change (via electronic signal) in the exhaust stream between the front O2 sensors and the rear O2s IIRC.
If catalytic converters are not present, the rear O2s will simply "see" a difference in the electronic signal (via voltage) and trigger a check engine light. The rear O2s are simply a monitoring function.
Now, your front O2 sensors DO communicate with the car's computer/ECU to affect drivability, etc.
Double check everything and get the codes read again and/or try another shop for a 2nd opinion. Most auto parts stores (Autozone, etc) will read check engine/MIL codes for free as well...g'luck !