It definitely sounds like a lack of coolant flow. I agree it could be a valve or pump.
There is a small, outside chance of a plugged heater core if the coolant wasn't changed at reasonable intervals, or ever, and corrosion build up is clogging the core.
Can you bypass the valve temporarily? If so, and the problem continues, the probably the pump isn't pumping.
Can you apply power to the pump and check for running?