Basically there should be be 3 outputs from the programmer.
That is 1 related to heating/room stat (live when ON)
And 2 related to Hot Water ( 1 output live when ON and 1 output live when OFF
A. When CH is selected one of the terminals becomes live. The wire from this terminal goes to the room stat, then through the room stat to the terminal block and joined to the 'white' wire of the valve
B. When HW is selected another terminal becomes live, the wire from this terminal goes to 'com' on the cylinder stat.
Output 1 of the cylinder stat goes to the terminal block then on to the boiler/pump, but it also joins up with the 'orange' wire. This is when there is no call for HW but there is for CH and the feed to the boiler comes through the valve 'orange' wire.
Output 2 from the cylinder stat goes to the terminal block and on to the grey wire of the valve.
C. The HW switch is like a two way, so when HW is not ON (ie OFF) theres a further live that connects to the terminal block and the grey going to valve.
So with a meter you you can check which terminals are live/dead in the various conditions.
Hope it helps.