To rule out his diagnosis just do a compression test. Also is your fuel pressure good? Dont go changing random stuff. Diagnose and then change what is faulty.
When car is getting readings from Engine Coolant Temperature Sensor and sees the car is not at optimum temperature the car is in Open Mode which is running rich. Which means your ECU runs your car on default settings. If when car is cold you are getting no problems then it means when your car gets into Closed Loop Operation then there is some problem.
In Closed loop your O2 is monitored to adjust your AFR(Air to Fuel Ratio). If your O[SUB]2[/SUB] sensor is bad then ecu cant manage AFR. This may or May not lit Check Engine Light.
There are three things
Diagnose stepwise. Check for if your coil pack is good, you are having good fuel pressure, you do not have clogged air filter. These are just regular things to check. But I suppose you need to focus on sensor readings pressure readings from each cylinder.