One would think that if its was the ECM sensor then the computer would be reading it as being cold all the time, causing it to run rich.
But that doesn't explain why the fans are running constantly.
Fan's running constantly is usually a rooted TFS earthing out regardless of the temperature.
The knock sensor would just retard the timing in case of detonation, but, if its getting excess fuel, it could also be triggering the knock sensor to throw a code as it wouldn't be getting the correct reading with the excess fuel being pumped into the motor (if that's the case).
All we can do is speculate, so my guess is its a combination of the ECM, TFS, Knock and Oxygen sensors being on their way out.