So I just had this issue. Fans on High, no movement of the temp gauge on the dash. Replaced Coolant Temp Sensor, no change. Replaced thermostat, no change. Interesting note; the engine temp could be read via data stream on the code reader, but the needle on the dash gauge never moved. Checked with code reader again, P0128 as expected. Attempted to clear codes and noticed that my scan tool read "erase command rejected". I have never seen a request rejected before. Went with the sure fire way to clear codes, disconnect the negative battery cable, wait, then reconnect. Verified that no codes were present with one more read before starting up. Everything worked after the hard reset. Temp gauge worked and agreed with what I was seeing on the scan tool and the fans were not running any more. Be sure to clear your fault codes to make the sensor/thermostat fix actually work.