The temp switch can be faulty. reads ok on the gauge but when you scan and look at the temp the engine sees, it can be wrong. Had one just yesterday saying the engine was at 3 degrees when it was at over 75 degrees. Ran really rich. Another one said the engine was at 60 degrees when the engine was stone cold, This one would not start nicely and ran rough until the engine got warm. I always check them when running issues are apparent. There is also the ecu relay which when faulty gives the same problem, as the voltage the ecu gets varies with load and rpm which in turn varies all the inputs the ecu receives