I would definitely suspect the flow rate of the heater core.
Is it new, or are you sure of the flow rate through it?
If not I would pull the hoses at the engine and backflush that heater core and see what I get out of it.
It's quick to do and answers a pretty important question.