When only heating is selected on my program timer the radiators all work fine and are hot. But when both heating and hot water are on the water gets hot but all the radiators go cold. When the hot water is up to temperature on the tank thermostat the radiators still don't get hot until I turn the heating off then the hot water off then on and off again. Then turn the heating on again and it works OK. I have a 3 position zone valve and this makes a banging noise when the water is first turned on. Could it be the valve that is faulty because I have had to replace it twice now in the past 3 years. The current one is about 13 months old. Or could it be the pump that's the problem?
It does sound likely that the 3 position zone valve is the problem, or likely more accurately the actuator that controls the valve is the problem.
To check that it is the actuator: remove the actuator from the valve body (there's normally a button to press which releases it), and then turn the heating on/off and the hot water on/off and see how the actuator moves - does it go into three different positions? (NB, the total rotation from all-heating to all-hotwater is a lot less than you'd probably expect; something like 40 degrees if I remember correctly.)
Possible faults with the 3 position zone valve (off the top of my head):