Well then...we have quite a mystery on our hands...
I would attempt to clean the heat exchanger or in some way satisfy myself that it was adequately functioning.
THEN, I would replace the temp sender that is responsible for the "overheat" light coming on.
When your out, take an IR temp sensor gun, and take repeated measurement of engine temp. The center of the oil filter is a good approximation of engine time and gives you a consistent spot to measure.
My thinking is that if the cooling system is functioning properly, there should be NO OVERHEAT situations at all. You said it has always overheated when run at >3200 rpm (but now it happens at much lower rpm range, correct?). And, IF the cooling system is indeed working (new impeller, new exhaust elbow, strainer clear, good water ejection from exhaust, etc) then perhaps the overheat warning is an error due to a bad sensor/sender.
So, try measuring it yourself with the IR gun.
Regarding strainer, I replaced mine with a Vetus model that is now standard equipment on the 2014s (I think). It is the model 140 like this:
There have been incidents where the factory installed strainer cracked (from ice formation) and the boat sank at the slip; for safety min is now mounted ABOVE the water line to prevent this disaster. Anyhow, with the design of the Vetus model, you can immediately see if raw water is moving through the system. I like it! There is a pic of my installation in my photos album titled "Replacing Motorbox bulkhead and raw water strainer "
/david