What could cause my radiators to go cold when the hot water is turned on?
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):


The actuator isn't wired in correctly and so isn't receiving the correct signals. If you've previously replaced the valve (including, I assume, the actuator), and wired up the new actuator however the old one was wired, then this might be the problem.
The valve itself is gunked up / not moving freely. A symptom of this would be that when the actuator is removed from the body it rotates as expected, but then when replaced onto the body it stops moving. Perhaps if you've previously replaced the actuator but not the valve body, this could be the problem.
One of the springs in the actuator has come loose/broken. The actuator relies on springs to return the valve to the default position when unpowered. Normally the default position is hot water though, so this would be more likely to be the problem if it you were getting heating but no hot water. If this is the problem you'll probably need to replace the actuator. Or if this is happening repeatedly, buy a better quality valve/actuator!