The Engine Coolant Temperature (ECT) sensor doesn't control the fan. There is a thermostatic switch on the radiator that engages the fan circuit when the coolant in the radiator gets up to a certain temperature. It sounds like yours is working fine.
The temperature blocks on the gauge get their value from the ECT sensor center pin, so it looks like the sensor is working, at least to a point.
As for p0118, the ECU doesn't like the signal it's seeing from the engine coolant sensor pins on the ECU. The best way to diagnose this is with a PDA to read the values as the ECU sees them, and to check the value the sensor is providing using an typical voltage/ohm meter. If the values are different, then the harness and connections between the two points needs to be checked. Perhaps the dealer can help with this.
Bad/weak ground points have provided a source of electrical difficulties for other issues, but I do not believe the ECT sensor uses a ground. Still worth checking.
Good luck.