IPDM controls the timer for the lights shutting off. I think part of the problem is that the IPDM is in a particularly bad place where water can leak past. It's in the engine bay on the left side in front of the strut tower, right above the fender liner. Corrosion is probably a big reason why these fail and start causing haywire. The IPDM integrates one big CPU controller, and the function of individual relays in a traditional relay panel. Unfortunately it seems to be less reliable than traditional relays. At least with individual relays you can replace the problem ones, whereas the IPDM is non-serviceable. So if one circuit controller is problematic you must replace it as a unit to fix one problem.
There are certain things in a computer on cars that is stored on what i would call "hard memory", or memory that doesn't require power to sustain. Same as when you put your computer to sleep vs hibernation, sleep puts all the data required for your current state onto RAM which requires power to sustain, whereas hibernation puts it onto a hard disk or solid state drive which doesn't require any power at all to sustain. Much like the odometer data will never leave that vehicle if it loses power, the key stuff is the same. I think it's a NATS module or maybe the receiver acting erraticly that's causing intermittent locking/unlocking issues. Perhaps due to corrosion or bad connections internally, or the CPU/PCB itself.
Jim, i know it's not recommended practice to just drive around with a CEL, but if the customer knows what it is and that it is not affecting anything then it isn't a problem. An H02 sensor code CAN cause poor fuel economy, CAN... it depends on what specific code he has for it. Is it just an O2 sensor heater circuit? Is it the A/F wideband that is a direct feedback to the ECM? Or is it just the post-cat narrowband sensor that simply monitors post-cat gasses and triggers a code based on cat efficiency? Even then, a cat-efficiency (or rather de-fficiency) code is not necessarily grounds for cat replacement, often it is an incorrect A/F caused by something upstream (vacuum leak, incorrect fuel pressure at the rail, clogged injectors or sticking injector pintles). In the case of incorrect A/F, STFT (short term fuel trim) value is a very good way of determining if there's a problem in the fuel delivery or management system.