Since the idle air valve did not fix it, the next things I would look at on an '88 are vacuum leaks, the throttle position sensor, and whether anyone has turned the throttle stop screw. On these EFI engines the computer only trims idle within a range around the base idle set by the throttle plate and stop screw. A vacuum leak or a tampered stop screw can hold the idle high, and the engine can stall when the computer runs out of room to correct.
In order:
1. With the engine idling, check every vacuum hose and the intake and throttle body gaskets for leaks, by ear and by carefully spraying around them, or have a shop smoke test it. A change in idle points to the leak.
2. Pull the actual code numbers with the computer's self test. A parts store reader that just says "O2 sensor" leaves out the useful part. On this EEC-IV system, code 41 means the oxygen sensor reads lean and 42 means it reads rich. Lean points toward a vacuum leak; rich points toward fuel delivery or a sensor.
3. Check the TPS with a meter: the voltage should rise smoothly as you open the throttle, with no dropouts.
4. Leave the throttle stop screw alone unless you follow the full idle setting procedure, and look for a Ford decal on the throttle body before cleaning it. Some carry one saying not to clean inside the bore or turn the set screw.
Our 1987 to 1991 Bronco service section has that Ford throttle body decal and a Ford Racing idle setting procedure sheet for Ford EFI engines, which walks through setting base idle and TPS:
https://www.supermotors.net/reference/ford/bronco/1987-1991/service-proceduresDana