Heater

My heater will blow hot when the fan speed is set to the lower two speeds but when I put the fan on the higher speeds the heat starts to turn cold almost right away, but when I put it back to low it gets hot again. It doesn’t matter whether the button for the recirculate mode is on or off, defrost or whatever. W
What is the cause of this?
This is on a 2005 Chevrolet Silverado 2500 HD truck.

It sounds to me as if the heater core is partially plugged. When the air flow is high, not enough hot coolant gets through the core and the air turns cold. On the lower speeds, the airflow is reduced and the heater core stays warm. Flushing the heater core may solve the problem. Flushing the core is accomplished by removing the heater hoses and forcing water from a hose through the core. A good shop can do this relatively quickly.