I'm pretty confident that one of the things listed in my original post will turn out to be your problem, but it's kind of difficult to narrow it down without doing some testing to determine which one is the cause. Throwing paarts on at random gets pretty expensive, pretty quickly and may not fix the car, if it is a bad O2 ground or high circuit resistance somewhere.
The engine IS running rich, that seems obvious. That's a good place to start; finding out why the rich condition exists. You will need a fuel pressure gauge to begin to diagnose this; you have to know if the fuel pressure is in spec or not first.
A fuel injection system is similiar to a garden hose. The fuel is supplied under pressure by the in tank electric pump, runs up to teh fuel rail, and any extra goes from the rail back through another line to the fuel tank. It is absolutely critical that the fuel be kept at an exact constant pressure in the system; this is accomplished by placing a regulator valve at teh point where the rail meets the return line. if teh pressure falls, the valve shuts to bring it back up; if the pressure is too high, it opens to bleed some off back to the tank. This all happens very quickly, many times per second. Under some conditions, a little higher pressure is needed (like during acceleration). This is accomplished by making teh regulator slightly adjustable; it is adjusted by engine vacuum (the reason for the vacuum hose to the regulator). When engine vacuum takes a dive (like under acceleration) the vacuum to teh regulator falls, causing a diaphragm inside the fuel regulator to close and bring pressure up to help meet the increased fuel demand.
The Fuel injectors are fed from the pressurized rail. A fuel injector is very similiar to an electrrically operated garden hose nozzle. They are pulsed on and off very rapidly, allowing fuel to spray into the intake ports of the engine. Imagine taking your hand and very rapidly tapping the lever on the garden hose nozzle, making the hose spray short bursts of water; this is what the computer is doing with the fuel injectors. When the computer calculates that the engine needs more fuel, it adjusts the ON time of the pulses, allowing more fuel to flow.
Sounds pretty simple, huh? It is, actually; its a simple concept that works very well, and is much more reliable than carburetors ever were.
When something goes wrong to cause a rich mixture like you are experiencing, the problem can be in the pressure side of the system (too high a fuel pressure; the computer is programmed to open the injectors a certain amount under certain conditions, assuming that the fuel supply is constant. If there is too much fuel flowing because the pressure is too high, the computer has no way of knowing). Therefore, the very first step in diagnosing this condition is to obtain an accurate fuel pressure measurement ; if pressure is too high, then testing all of the other components is meaningless; you cant assess how they are doing their job if what they are trying to control is faulty.
If fuel pressure is too high, it is due to either a faulty pressure regulator, or a remote possibility is a restricted or kinked return line causing the fuel to not be able to flow back to the tank rendering the regulator useless.
If the fuel pressure is low and you ahve a rich condition, tehn you have one or more injectors staying open when they are supposed to be closed, leaking additional fuel in that isnt supposed to be there,like a hose nozzle dribbling.
If pressure is right on target, then the problem must be in teh control side; the injector pulse must be on too long because the computer is either receiving faulty information to base it's decisions on, or is making incorrect decisions due to faulty power, ground, or internal fault.
the sensors that are used to make large fuel corrections are throttle position sensor (opening the throttle wrequires a large amount of fuel to be added, because you've just added a large amount of air); Airtflow sensor (measuring a large amount of air entering the engine requires adding a proportionately larger amount of fuel), MAP sensor (measures engine vacuum; low vacuum means the throttle is open, so more fuel is needed ), and coolant temperature sensor ( a cold engine requires more fuel than a warm one, because some of the fuel on a cold engine condenses back into droplets of liquid when flowing through the cold metal intake passages, this is why carbureted cars have choke mechanisms to reduce air in proportion to fuel). In adddition, after the engine is warmed up completely and being driven, then the oxygen sensor(s) are monitored to check on ho well the computer is calculating fuel mix based on teh other sensors; if fine tuning is needed then the O2 signal is used to calculate and recheck fuel trim corrections (many tiomes per second). Also, on many ford products there is an intake air temp sensor used to correct fuel delivery based on air temperature, which affects density.
As you can see, a failure in ony of these components will affect fuel calculations by fooling the computer into thinking the need for fuel is different than it actually is. Some of tehm will give other symptoms; a TPS failure will usually cause hesitation, especially at certain throttle positions where the sensor is most worn mechanically. A coolant temp sensor reading low, OR AN ENGINE ACTUALLY RUNNING COLD due to an incorrect or stuck open thermostat or low coolant not touching the sensor will make dramatic increases in fuel delivery. One clue with coolant temp problems: the engine will usually run pretty well on cold startups, when the actual conditions match what the sensor is sending to the computer, but as it warms up and the temperature the sensor is stuck at is colder and colder than actual temperature, the mixture will become richer and richer.
If the problem only starts occurring after the engine is warm, when it goes into closed loop (o2 signal is not used by the computer untill certain conditions are met, among them the coolant temp being above a certain level to prove the engine is warmed up= closed loop operation), then there may be a problem with the o2 sensor or it's related circuit. An oxygen sensor will never affect operation when the engine is cold; it's signal is not used by the computer for fuel corrections untill after the engine is warmed up.
Although these components can be diagnosed and wiring harness circuits can be manually checked for problems by going to each end of each wirte with an ohmmeter, this is extremely time consuming; having a scan tool makes this into a 10 minute operation instead of a 10 hour one. If ther are service codes stored, and there should be, this may give some place to start diagnosis. The problem is, if a sensor fails or sticks in range like a coolant temp sensor constantly reading 20 degreed F would, it will not set any code; all that will be present is a code indicating that the engine is running too rich as measured by the o2 sensor after it has been running for long enough to be considered "warm".
Mechanical failures are easy to identify and fix, and are found by use of a fuel pressure gauge, and this is the very frst step in diagnosis. Control problems are harder to locate, and may require a scan tool to identify in a reasonable amount of time. the alternative is manual measureing and comparing sensor values to specs witha DVOM and measuring circuit voltages manually teh same way.
Good luck, hope this is helpful!