Not sure if your 05 Duratec uses a CHT or ECT sensor; think it's a CHT. Might want to check coolant level and thermostat operation first.
P0128 - Coolant thermostat (Coolant temperature below thermostat regulating temperature)
Indicates that the thermostat monitor has not achieved the required engine operating temperature level temperature within a specified amount of time after starting the engine
Insufficient warm up time
Low engine coolant level
Leaking or stuck open thermostat
Malfunctioning ECT sensor
Malfunctioning CHT sensor
Your thermostat is located at the front of the engine where the lower radiator hose enters the cylinder head. It's under the intake runner for cyl #1. I know that's backwards from what vehicles used to be, but with aluminum blocks the change had to be made to insure it heats up properly.
There are 2 different thermostats for Dtecs. One is 195F, and has a sensor built into it. The other is 180F, and doens't have the sensor. I have an 05, and I have the latter of the two. You probably do also. I had to get out a mechanic's mirror to check to see if I had a sensor or not. That means the only temp sensor you have is in center of the cylinder head.
I checked, RockAuto sells the thermostat without the sensor for $30ish, and the one with the sensor for $100-120. The MC part is $120 and 195F, and the other supposed OEM thermostats are 208F!! That might be a PZEV addition, or a later model addition. I've noticed that sometimes RA lists parts for other YM on your YM page. Always double check!
I don't think that's your problem though. RA sells 2 different temp sensors- so check to see which one you have. One has a 4 pin electrical connector, and is $23. The other is 2 pin, and $13.