First off, computer / brushless fans cannot be reversed. Bummer.
The fan itself contains its own three-phase driver circuit to control its direction and speed and won't work properly if you try to turn it off and on rapidly with PWM. It would be like trying to dim an LED connected to an Arduino by turning on/off the power to the Arduino.
If you're just controlling the speed you need some way to smooth out the power to the fan using something like an RC circuit or by increasing the PWM frequency. I'm sure there are a number of examples to be found if you look around.