On a cold engine, the systems is running in "open loop" mode, which means most of the emissions control system sensors are being ignored by the computers. It us using preset values for everything. Once a certain temperature is reached, it goes into closed loop and begins using all its sensors to manage fuel and spark. So if it runs find without sensors but runs like crap with the sensors, I would bank on a sensor problem. Also, since it runs properly at idle, you can rule out of most of the usual culprits like IAC
, and MAF
. Those things cause problems at idle.