I know that problem) this error really is a common thing on modern Solaris buses. someone already correctly mentioned the sensor above - that's really a frequent cause. the thing is P0128 gets triggered when the ECU doesn't see normal engine warming, but why that happens - there could be several reasons here. the coolant temperature sensor is sending wrong signals, the electronics thinks the engine isn't warming up, so the error light comes on. the thermostat can be completely fine in this case, so the diagnostician was right
there could also be an issue with contact quality in the sensor connectors or wiring, oxidation happens sometimes. if the engine is actually warming up normally and the fan kicks in like it should, then most likely it's the sensor itself or its electrical circuit that's acting up. try at least checking the visual condition of the sensor connector under the hood, sometimes just reconnecting it or cleaning the contacts helps. if that doesn't work, you'll have to replace the sensor, it costs next to nothing and takes like 15 minutes of work
seems to me you should also make sure the cooling fan is turning on properly and the engine is actually warming up like it should. if the cooling is actually fine in practice, then go ahead and replace the coolant temperature sensor - that's the most likely fix for your situation