it sounds like the changover relay within the controller is faulty to me. The deciding factor being that to get the CH on you have to cycle the CH switch on the controller to get it to reactivate once the HW is turned off, and the CH was already on. no other real way on an S plan that this could happen unless rewiring has gone on which it obviously hasnt...
Mental fault finding i have done for you with S plan wiring in mind:
CH on and roomstat calling = 240 volts to motorised valve brown wire. This will operate the CH zone valve motor, open the valve and change over the normally closed contact to normally open inside the valve head. This will allow current to flow through the grey live wire and onto the orange wire to the boiler ignite and pump run.
If HW is selected and cylinder stat is calling = 240 volts onto HW zone valve brown wire. This will operate the motor, open the valve and change over the normally closed contact to normally open and allow current to also flow through orange to boiler ignite and pump run.
If both HW and CH are selected and calling, there will still only be 240 volts at the boiler and pump run terminals (usually terminal 10 in JB) so in effect if HW is selected first, this will ignite boiler and run the pump, turning on CH after that will purely serve to open the zone valve for CH. Vice Versa for if CH was selected first.
now with that in mind, we can say that having HW on should not kick off the CH under normal conditions, and also vice versa. The boiler and pump will receive 240 V and current flow in both situations.
In this case, if having the HW on stops the CH that must mean that the selection of HW is somehow dropping the live feed to the CH zone valve motor. This live comes from the main incoming feed to the controller, through a set of relay contacts (when you select CH) in the controller, out and through the roomstat to the motorised valve motor live terminal.
Assuming that this wiring is standard S plan, this must mean that the feed is being lost from the controller. The relay is the most likely culprit. Having to deselect and select CH again to get it to work seems to point towards the relay losing its coil feed when HW is initially selected and only being re-energised with the deselect and reselect.