The TPS is in two parts, one part is for the tranny TCU and the other part for the engine controller ECU. The imput and output voltages seem to have some influence on how they operate, but the control units TCU and ECU, seem to operate somewhat, on a ratio or the curve of the output voltages. In other words they seem to have a somewhat variable base line.
Having said that, mine seems to operate just fine at about 12-14% (or 86-88%) or around 4 volts (4.63-65 in voltage), depending if your measuring the TCU side (front) of the TPS or the ECU side of the TPS. Just a curiosity in passing, the voltage goes down on the TCU side of the TPS and up on the ECU side of the TPS as the throttle is opened, if I recall correctly. JNeary`s recommended the 12-14% (86-88%) setting, has worked better for me than the 82-83% setting recommended, by the FSM or AllData.
Another piece of usless information, is the TCU supplies voltage to one side of the TPS and the ECU to the other and they rarley match. Guess it´s all a compromise.
I think I have mine set at 4.63 in and 3.9-4.0 out on the TCU side of the TPS. Torque converter lockup seems a touch late, but acceptable.
Seems a lot of the sensors have some imput into idle, O2 sensor, TPS, IAC, MAT sensor, ECU coolant temp. sensor (lower left of the block), the O2 sensor heater circuit, maybe even the knock sensor and the MAP. The over all motor vacuum and vacuum circuits.
TPS sensor, IAC (piston and seat gummed up), vacuum circuits and the O2 sensor (wiring, connectors or dirty probe), seem to be the most common problems. The FSM says, CPS and dirty throttle body. At idle, I´ve noticed a bunch of XJ´s run slow (low idle) and rich. Think it´s often, that the ECU, gets confussed with conflicting imputs and defaults.
Yours kind of sounds like a sticky ISS (IAC,idle air controller), but could be a vacuum problem, O2 circuit or other sensor values. Or a combination of a whole bunch of things.
My idle changes about 200 RPM, pretty much right with the motor temp. the higher the temp. the lower the idle. Worked even better/worse after I cleaned the goop off of the feeler end, of my MAT sensor.
There is an idle air orifice (about 1/4" hole) in the top of the throttle body and an adjuster with a cap in the side. My idle air orifice was totaly plugged up. My ISS piston and seat had a 1/8th" of stuff baked on there.
If your´gonna clean the throttle body, the TPS and IAC arn´t really solvent friendly. I´ve had better results taking everything off of the throttle body and cleaning it on the work bench. When you get done, double check your Transmission Valve cable adjustment. I´ve had the best luck cleaning the ISS with my finger nail and a small tool of some type, the rod under the pston/plunger is greased from the factory, solvent is gonna wash the grease off, pulling the plunger out with your fingers can damage the IAC. Trying to run the plunger out with lectrical power, will spit the plunger across the driveway (ask me how I know this).
There is a kit to help reduce oil being sucked out of the valve cover into the intake above the TB, Moving the CCV pick up, may cause it to suck more oil, who knows? You really need the CCV, system working properly (a vacuum or as little pressure as possible in the crankcase), if the pressure in the crankcase isn´t going into the intake, it´s going to go someplace else, out the top of the valve cover, out the main bearing seals or out the dipstick hole.
While I´m passing out advice, cleaning the ground (wire brush) at the dipstick mount, the rear of the head to the firewall and behind the window washer resivoir, helps everything run better. Adding a ground from the negative battery terminal to the fender or the front clip is also a help. Time well spent. An occasional dose of injector cleaner in with the gas seems to help as does a good run up the interstate (to clean out the motor some). I idle mine way too much, it runs pretty strong, the local guys have learned to leave my old red XJ, pretty much alone, looks like a brick, but runs pretty darned good, I usually manage to leave them in a cloud of soot, at a stop light encounter.