One P0420 solution
I've had the dreaded P0420 - "Bank 1 catalyst efficiency below threshold" problem for many years. The engine runs fine, but during a long trip, the check engine light will come on. A scan tool will turn off the service light, but the code is stored in memory, and will fault if you have to pass an emissions inspection. I've done all of the usual checks, and even went so far as to replace the O2 sensors. You can disconnect the battery to clear the memory, but the error code eventually returns. Disconnecting the battery will also put the emissions system into a "NOT READY" state, so it's obvious that you've recently cleared the computer's memory.
During one inspection cycle, I took the drastic and expensive step of replacing the cats with some after market parts. This does 'fix' the problem of your cats being out of specification, but it doesn't address the real underlying problem. In about a year, the new cats started to fail.
What's happening is that on a long trip, the engine will be hot enough for the computer to measure the catalytic efficiency by using two O2 sensors in the exhaust. If your cat is just starting to fail, many people will simply replace the O2 sensors, hoping to get lucky. This might buy you a month or so, but eventually the problem returns. Most likely, the computer is right, and your cats are starting to lose efficentcy.
A likely scenario is that something is leaking/dripping into the cylinders, and it flows down into a cat and fouls it. It could be fuel, oil, or coolant. If it's fuel, you might have a bad injector that leaks with the engine off. If it's oil, a leaking seal is a likely culprit. In my case, the telltale sign was a slow loss of coolant with no noticeable drips on the garage floor.
Over time, coolant was disappearing at an increasing rate, and I did all of the usual things to fix leaks; new radiator, water pump, and all hoses replaced. But the truck kept needing an occasional top off of coolant. In an effort to stop the mysterious leak I added some powdered leak stopper. This seemed to help slow down the coolant leaks. It also had one additional side effect: the dreaded P0420 codes stopped occurring.
What seems to be happening is that coolant leaks into a cylinder when the engine is running hot. The coolant (ethylene glycol) doesn't burn, so it flows down to the cat and fouls it. If you can stop the coolant leak, the antifreeze will eventually work through the exhaust, and the cat will start working properly again.
The permanent solution is to remove the intake manifold and replace the gasket. It's an inexpensive part (< $20), but the installation process will require a bit of effort. You know, like removing the pressurized fuel rail without accidentally lighting yourself on fire.
If you've been plagued by P0420 codes, the moral of this story is to make sure you've checked for internal leaking before you replace expensive parts like the cats or O2 sensors.