There are several possible reasons that your GMC isn’t pulling well over hills, some mechanical and some transmission-related.
The mechanical issues relate to the timing of the GMC. It’s more than likely that it needs a new timing chain, for starters, as well as any parts related to it. Then, there’s the distributor. It is quite likely that the gearing for the distributor, also part of the timing mechanicals, is worn so it is causing the sparkplugs to prematurely, losing power.
Of course, there’s the tuning. If your GMC hasn’t been tuned in a while, the chances are good that you need a new set of plugs, plug wires and rotor. Your GMC also needs to have its timing checked and reset, as well.
That’s most of the mechanical stuff. The rest is transmission-related. I’d have a look at the transmission intercooler, for starters. If your transmission is running hot, it’s a pretty good bet that the intercooler line is being constricted by something. It could be that it is just worn out or it might be that a clamp is causing a constriction or it is possible that a deposit of something is slowing the fluid flow and raising temperature, causing a problem — when the temp goes up, the transmission control unit looks at the temperature sensors and tells the transmission to stop working as hard. The result is performance like you’ve described.
The issue here is that it is an intermittent problem. When you get out of the hills and onto flat land, everything returns to “normal” and the fluid flow also returns to normal so that the tranny acts normally.
I think that if you look at the cooling side of things — transmissions run quite hot and use the fluid not only to lubricate and run the transmission but also cool things down at the intercooler which acts like a heat exchanger and draws the heat out of the transmission where it is picked up by other cooling lines that are connected to the GMC’s cooling system.
To fix this problem, the technician will have to tear things down and will then have to run all of the cooling galleries to remove deposits and buildups. This type of work will cost about $1,600 when it’s all finished. If your technician is quick, it might be a bit less expensive.