1st thing, can I just say, "kudos"
. That's how I like to see someone describe the results of the EEC-IV self-tests. With each code, you've indicated which part of the tests it came from, and you've included pass codes in your list. Well done!
SOP is to work on KOEO codes 1st (yours passed) then move on to any KOER codes, so we'll start there:
KOER 412: Often times, this code is more symptomatic than diagnostic. Basically, the computer had trouble getting the engine to idle correctly during the test. For now, we'll note that the code exists.
KOER 172 (and CM 172. as noted, SOP is to work from the KOER test rather than CM codes): This can be a challenge to diagnose, because there are so many possible reasons, besides a bad O2 sensor, that could cause the sensor to indicate lean:
1) Before blaming the sensor itself, make sure the wiring between the computer and the O2 sensor is intact. It's not unheard of for wires to contact hot exhaust parts and melt through or for connectors to break. The computer can't distinguish between a bad sensor and a bad wire.
2) vacuum leak: A vacuum leak could also make it difficult for the computer to control idle during the KOER test (see KOER 412). Check for vacuum leaks
3) low fuel pressure: Interestingly enough, you note a CM 556, which indicates a possible problem with the fuel pump circuit. Note that problem is intermittent enough to not show up as a KOEO 556. Could the fuel pump be intermittently cutting out, causing the fuel pressure to be too low? Check fuel pressure.
4) MAF is the primary sensor used to determine fuel mixture, with the O2 sensor providing data to fine tune that mixture. We have a CM 185 which points to the MAF (again, we don't have a corresponding KOEO MAF code, so any problem with the MAF only shows up during normal operation). When considering the combination of an MAF code and an O2 sensor code, we have to ask ourselves which is cause and which is effect. Is the MAF dealing out bad data causing the engine to run lean, or is a bad O2 sensor confusing the computer causing it to cast blame at the MAF. As any search for "engine ping" would show. A dirty MAF is a common cause of engine ping on these engines (causes MAF output to be lower than it should causing engine to run lean which causes ping). It's common enough cause of various driveability problems that you might consider opening the MAF up and making sure the filaments are clean (Decent instructions can be found in the Singleton site link in the useful threads forum). May not end up being the real problem, but it won't hurt (as long as you're gently cleaninig those filaments), and won't cost much.
5) Lest anyone accuse us of ignoring the possibility of a bad O2 sensor, if none of the above proves to be the problem, then we may have a bad O2 sensor. Try the above items and see if your problem is resolved. If not, then we'll pick it up from here.
(If you're still awake) Wow, that was quite a treatise! Probably a lot more information than you wanted. I hope it helps.