Hmmm. Help me out with the misfire, John. Is it...
Write back when you can,
LOL! You actually remember the compressor cut-out switches!
This problem doesn't really fit an oxygen sensor problem (too quick) but with one exception... You may have a fuel adaptive cell that hasn't been updated from when you had been using E85 earlier, something that you pass through only in limited circumstances such as tip-in with A/C on. It's a stretch, but I can't discount the oxygen sensor code (whatever it was... several flavors). They don't normally go away, rather an oxygen sensor tends to decay as it ages, getting progressively less responsive over time. If the Oxygen Sensor Monitor picked up a failure of some sort a few months ago, it's probably best that the sensor be replaced, whether it's the cause of your off-idle sag or not.
I think that's what I'd categorize it as at this point... a sag on acceleration rather than an outright misfire. Does that sound right to you?
Sags are caused by something common to all cylinders in most cases, things like fuel mixture, ignition timing, etc. Your mention of TPS is rooted in fact, but isn't common. You may have a TPS issue, but it shouldn't be A/C dependent. Failures of the TPS often (but not always) set a code and turn the CHECK ENGINE lamp on. I'd expect idle fluctuations and odd transmission shift issues to go along with an erratic TPS.
EGR should be considered, although this would also be an unusual manifest of EGR system failure in this year. Easy to test, disconnect the vacuum hose leading to the metal portion of the EGR valve, or disconnect the hose back at the intake manifold. You'll see the hose coming off a vacuum "tree" near the throttle body side of the intake, snaking its way up to the general TB area. Disconnect it (leaving it open is OK for quick test), then do an A/C ON off-idle test to see if it changes anything.
EGR is normally disabled for a minute or so after engine start anyway, but your EGR backpressure transducer solenoid (I'm not kidding..) may be flowing at all times by default. Disconnecting the vacuum source positively prevents the EGR from opening after that point.
Last... and I hate to tell you this... do a battery disconnect of several minutes to clear PCM adaptive memory. You'll be starting over from square zero on all adaptives that way, but any codes stored as either full or 1-trip failures will be erased as well. It might be wise to see the AutoPro boys one more time before whacking the memory.
With all adaptive cells back to zero, any oddball adaptives will be gone as well. If this immediately cures your off-idle sag, I'd recommend the upstream oxygen sensor.
Write back if you have any questions or problems, John. I'll be glad to help.
I'm with you when it comes to replacing parts. I can't rewind a bad bit of advice from this end when it doesn't fix something and being left with an unneccessary parts bill won't win me any friends!
Since you're sure that what you're feeling really is misfire, I'd suggest emplying AUTOPRO's suggestion concerning flashover misfire... tracking of the inner spark plug boots. It was my original thought in reading your question but discounted it when you seemed to have too many cylinders affected at the same time.
Flashover occurs when spark follows a path down the outside of the upper spark plug insulator, rather than passing through the center. Each instance of flashover creates a stronger track for the next one to follow, eventually winding up as a dead miss. Older spark plugs with widening gaps or older wires that have lost some of their boot flexibility are contributors to seeing this happen, but sometimes it just plain... happens.
Once you've had flashover, the spark plug boot and upper insulator of the spark plug are both irreparably damaged. Both need to be replaced together to prevent one of the old parts from infecting the new one.
You can check the front three plugs and wires easily... just pull the wires off and inspect the inner surface of the boots for something that resembles a photo-negative of a lightening bolt. It doesn't always appear that way... this is an example where spark followed the same path each time. Other failures can involve practically the entire 360 degrees of surface area. The spark plug will show a better mark in that case.
Any black mark that won't scratch off with a fingernail is etched into the insulator, making the plug instant junk.
Unfortunately, getting to the back three plugs and wires isn't something I'd like to try at home. You can reach the #1 plug (closest to belts) by removing the alternator upper support bracket and pushing the unit back to the firewall. I also remove the coil pack for extra room. But #'s 3 and 5 are just about impossible to reach without removing the plenum. They're accessed best from below, on a lift. I'm sure you've got one.
Let me know what you find, if anything. TPS output can be checked using a digital voltmeter if you've got one handy. If not, they're fairly inexpensive these days, available at most big-box lumber yards, Sears and Harbor Freight. I'd be happy to detail a test procedure if you're game!
Yes, actually the TPS by far has the greatest probability of causing a sudden unexplained engine speed increase like that. Even with A/C cycling, the engine speed should remain constant. If you're seeing it jump up for no reason, you'll probably be able to tickle the sensor a bit by wiggling the connector and cause the speed to change while at idle. All it takes is a voltage increase of .06v above the minimum TPS value seen each key-on cycle to send the PCM into an idle-up/ timing advance program. It doesn't take much!
If at all possible, use silicone dielectric grease on the inner surfaces of the spark plug boots when you replace the plug wires. Dielectric provides a far better electrical and physical seal of the spark plug boot than just new part-on-part alone, all-but eliminating any possibility of flashover. Good stuff.
Remember that if you find flashover tracking, you'll need to replace the plug too..