There is a little resistor module mounted near the blower motor.
https://www.youtube.com/watch?app=desktop&v=2TEO7qOXZdk is a good video on how to replace the resistor.
You said that the fan speed changes between low and highest speed intermittently. When it does this, what fan speed do you have the knob set to?
The resistor itself is made in such a way that it is not likely to be affected by vibration or bumping, There are several resistive runs on a circuit board, for the lower speeds, the current flows through longer runs. When a resistor goes bad, one of the runs breaks, and then you lose a lower fan speed, but not the highest. The way the circuit works, if you set the knob to max, the fan will run full speed even if the resistor is disconnected, but there's not really any failure of the resistor that would cause the fan to jump up to high speed if the knob was set lower.
So perhaps the fan runs sometimes, and other times it doesn't. This is
usually an issue with the blower motor itself. You didn't say what the shop supposedly did to fix the problem when you took it in. Did they say they replaced the blower motor?
If they did, and the blower motor is fine, then it could be a connection issue. Maybe the connector on the blower motor itself is not fully engaged, and makes and breaks contact with bumps. Another possibility is that for some reason, the Heater relay has worked itself partially out of its socket. It is in a hidden panel above the glove box There's a picture of it with the panel unscrewed and pulled down at
download/file.php?id=33 ) You could pull the glove box, and reach up and around to press the relays down into their sockets. Don't remember folks here having that issue with the Heater relay, but some have had that happen with the Tail relay in the same block.