P0420 - Catalyst System Efficiency Below Threshold (Bank 1)
P0300 - Random/Multiple Cylinder Misfire Detected
P0304 - Cylinder 4 Misfire Detected
Your first stop should be to a different shop for a second opinion. I don't know which engine you have so I don't know which type of ignition system you have but there are too many parts being replaced here. I could believe an ignition coil but the 420 code is detected by readings from the rear oxygen sensor(s). You don't replace the messenger because you don't like the message. If that code was detected the oxygen sensor has to be working. If it was not working a different code related to that would have been set.
The misfires could damage the catalytic converters if they were bad enough but there should have been some warning first. The Check Engine light will flash if too much raw fuel is going into the exhaust system and will overheat the catalytic converters. Random misfires will be detected but usually aren't bad enough to overheat the converters.
The exception is if the Check Engine light turned on and you ignored it for a long time. That will give other parts time to fail. All the parts you listed can set diagnostic fault codes. They didn't all fail at the same time. I would start by replacing the spark plugs, and replacing the spark plug wires if your engine uses them. Erase the fault codes, then drive it and see if any codes set again. If you get a code related to catalytic converter efficiency, you replace the one listed in the code, not any others.
Friday, May 31st, 2013 AT 11:51 AM