Since the car drives fine when not in limp mode, the problem might be more of an electrical/wiring gremlin, or a bad sensor or even a solenoid in the transmission valve body itself. Engine issues can also directly affect the auto transmission since the engine computer essentially controls both. There could also be more than one problem contributing to the issue.
It's hard to give specific advice, without knowing more about the car and what state of repair it is in. Like markusmarkus mentioned, there are two different auto transmissions on these cars, zf & gm. They have different issues so knowing that is important as a start.
Can you get the car on jack stands and inspect transmission directly? The gm transmission will have a smooth trans oil pan, while the zf transmission has more of a waffled or ribbed trans oil pan. If its oily and dirty, then clean it up so that you can identify any current leaks.
Btw, the mpg needle bouncing erratically reminds me of my gm transmission when it was running low on ATF. The cause was a leak from a seal on the side of the transmission above the pan where the gear selector lever goes in. I could tell when fluid was getting low because mpg needle would drop below 12 at the slightest touch of the throttle.
The typical troubleshoot starting point seems to be change fluid & filter; both to check condition of old fluid (is there metal bits) and also to confirm that level is correct because it affects things and is relatively simple to do. After that it becomes a process of elimination.
The fact that its not slipping when it drives fine is definitely a positive, but perhaps more of a challenge to diagnose.