You have already addressed the most common cause of lukewarm water, and that is a water heater bypass valve that is not completely closed.
Also, check for any shower that could be turned on at the controls, and turned off at the head. That will allow hot/cold to mix in your system.
When you do run the water heater, does it run the "normal" length of time to heat the water -- i.e., do you think the water is getting up to temperature in the tank but not getting to the faucets, or does the water heater shut off after too short of a run time?
What brand/size water heater?
Brett Wolfe