You probably won’t believe this but I have a 2015 was doing the same thing. Finally the new mechanic pulled the new thermostat that he installed and found that it was not opening all the way causing a flow issue. He put a new one in after testing it and BOOM! No more overheating on hwy or in town. Gauge stays in the middle. Pull the stat and stick it in boiling water and see if it opens all the way. I’ll bet it doesn’t. Hard to believe after new engine, 2 water pumps, 2 radiators, heater core flush, and countless stats.