These fans won't work well for PWM control, it will interfere with the onboard commutation control.
You need to control the DC voltage fed to them, and will only get about 50-60% range in speed.
You could use a controller like this to get temp control without an MCU involved. The board itself is MCU controlled, it uses a STM8S003F3P6 so is quite capable, monitoring both temp and rpm feedback.
If you really want an R'Pi to control the set point/range then you could potentially fake out the NTC thermistor on this board with an I2C driven digital pot.
You DO NOT need to put a diode across the fan (or indeed any of the PC fans produced) ...there is no back EMF voltage generated by these fans, they are clamped internally in the commutation driver/controller