1. I use same code for all my recent miners: ZEC, ETH, CN. So this problem is not related to this miner only.
2. This problem is related to buggy drivers. Miner sets fan speed but drivers sets some different speed. Then miner reads current fan speed and drivers report wrong speed. Therefore miner calculates wrong new speed, drivers set it wrong again, it increases error in speeds even more and so on.
As far as I remember, I saw at least two reports that this problem is solved in some drivers version. Need to find these messages. Also I will check it on latest drivers, if AMD still has this problem may be I can find some new workaround.
You can try to set static fan speed, for example, "-tt -50". And see what speed was set.
are you working on an update to CryptoNote GPU miner.. i.e. more speed?