You most likely have a Logic blower control module going bad. Your high blower has a bypass and sends full current to the blower motor, but the other speeds are pulsewidth modulated through the module. This module is behind the dash on the HVAC box. A skilled technician usually can get it out without pulling the dash. I have provided the schematic to show you how the system works.
Here are the instructions. It is the most common problem with this complaint. I can not say definitely because I do not have the vehicle in to diagnose the problem I usually use an oscilloscope to check the voltage signal to and from the module.
The heater fan is located in the passenger footwell: Remove the carpeted panel under the passenger side dash, held in place with 2 Christmas tree type holders Remove the light fixture from the panel and set aside Here you can see the fan: The resistor is between the fan and the firewall. After removing the fan you will se the resistor: With the seat all the way back look up under the dash in front of the fan you should see a small screw 7/32" there are 2 more closer to the floor carpet. Remove the screw closest to the fan and loosen but do not remove the 2 closest to the floor carpet. If you can't get a wrench on the back 2 screws you may want to try and break the old resistor out just be careful, and then you will have more access to the back 2 screws. Place the new resistor in place using the back 2 screws as a guide, tighten the front screw, the front screw alone is good enough to hold it in place. Reattach the 2 wire connectors
This is a resistor module, not a standard resistor, It can have spurts of intermittent operation before failing. But like I stated earlier, I like to test input vs output with an oscilloscope or factory scan tool before replacing parts. There could be a wiring problem or a problem with the control head also, although the resistor module is the most common it is not the only thing that can cause this.