Try monitoring the TPS voltage from cold start idle up to hot idle with a multimeter. It should read between 0.80 volts and 0.82 volts between the C+ pin and B ground pin on the TPS. Do this test with the engine running this time if you have already check and calibrated it with the power on and engine off.
Also check the resistance from the battery ground post to the firewall and to the engine block with the power OFF.
Then test the voltage with the engine running from the engine block (make sure you have good contact with bare metal, the valve cover works well if you scrape a spot bare) to the battery ground post.
The grounds (engine and firewall) should all read less than 1 ohm to the battery ground post, and less than 0.10 Volts in the other ground test mode (engine running).
A poor ground can change the TPS voltage and raise or lower the idle speed by confusing the ECU.
There are several other sensors, and parts that can cause idle problems but you should verify the grounds first with a meter!