Thanks, Matt. I wasn't sure what we had because you mostly mentioned roughness but I see we've got quite a bit more than that going on.
It sounds like a bad oxygen sensor
from what you've told me. 02 sensors are used to fine-tune your air-fuel mixture and should keep things pretty close to the engineering ideal of 14.7:1 that you've heard of when they work right. Their varies with exhaust stream oxygen content, something that can be used directly by the PCM so it knows which way to kick the mixture.
To work properly, they need to be heated and heated well so they're equipped with electrical heating elements that operate continuously as the engine is running. Your PCM knows better than to look for their signal before enough time has elapsed for heating, a time called open-loop operation.
Once open loop is timed out, the PCM goes closed-loop, where it actively solicits the sensors' signals for mixture control. If the sensor is healthy AND heated... great. If not, you can have some pretty nasty driveability.
Part of the problem lies in the way oxygen sensors are checked using the OBD process. The PCM places a very weak 5v bias voltage on the sensor signal circuit, something that's easily consumed by the sensor if it comes online properly... it just melts away.
But if the sensor doesn't reach operating temperature, part of the bias voltage sticks around and closely resembles that of a rich air-fuel mixture which prompts the PCM to take fuel away until the engine barely runs.
Since heat is what it craves, you've noticed that slow speed in-town or cold weather driving tends to affect the truck worse than being out on the open road. Heat is heat and you do satisfy a certain amount of 02 sensor heating with the exhaust stream, which will be hotter with increased engine load.
You also found that pushing the throttle eventually pays off and the engine responds even when it's running at its worst. At a throttle angle that's close to wide open, your fuel system reverts to open-loop, a time when oxygen sensor output isn't used. This also takes you well past the corrupted fuel cells that had been corrected to a value of up to -70% back to one that's zero... even. When that one hits, the wheels spin!
It makes sense. Unfortunately I don't know which sensor is messing with you at this point and it could even be both sides (right and left banks) if the heating circuit isn't powered up. There will be a dedicated fuse underhood marked 02 SENSOR, which provides the output power source to your sensor heaters. It might be worth checking to make sure it's not popped. This fuse is powered only when the engine is running by the way.
Check it out and let me know what you find, Matt. I'm sure the offending sensor will eventually code again, but if they're both the same age it might be wise just to stuff a couple fresh ones in.
Codes I'd expect to see would be 02 SENSOR HEATER CIRCUIT, 02 SENSOR SHORTED TO VOLTAGE or possibly FUEL SYSTEM RICH. Each code would come with a designation for side-to-side, but that's the gist of the matter...
Talk in a bit,