I am not saying that I'm right on this one. I am just throwing out a possibility. The problem I see is that of why does it get hot when he runs the sink? It would stay tempered if the flow rate is the issue. Maybe a slight increase but if it cannot keep up with the demand it should stay a low temp. But when he uses the cold water and slow the cold water down and pull it away, he gets hot water. My thought, and only my thought is if you put a lesser gpm shower head it is only going to decrease pressure coming out at the same point not temp due to the temperature balancing. But once you pull cold water away from going to the diverted the temperature increases. Why only then? When he had a tank he had the reverse he got hot water until somebody turned on a faucet elsewhere and it got cold. Maybe one temperature balancing diverted is bad but he stated he replaced it. But two are bad? There has to be something with the piping if you pull water from it and it changes the temp dramatically. Again this is my feeble mind at work without being on site.The water heater is maxed out. Look at the math above.
But if he wants to check for a cross connection just turn the cold water off to the water heater and go to the lavatory faucet and make sure once the initial hot water pressure is relieved that the flow stops on the hot water side.