Check your tach sensor. My truck just started doing this again and I knew it wasn't my wiring cause I just redid it so I started looking under the hood. The insulation on my tach sensor (original most likey) had rubbed off and the wires must have been touching each other with the vibration from the engine. I think when they touch it makes the computer think your at WOT and kicks the tranny out of overdrive. I'm going to pick up a new sensor at the dealer tomorrow.