Hi Mark
Another thing you could try. If the CAN BUS is a high speed bus, two of the modules connected to the bus will have a 120 ohm termination resistor connected between CAN high and CAN low, my guess would be the ECU and BCU. The CAN BUS will likely go to pins 6 and 14 of the diagnostics socket but confirm this. If that's the case make sure everything is switched off and the ignition key is out and then check for zero volts between pin 6 and 14 of the diag socket. Then set the meter to ohms and check the reading between these two pins, if it's a high speed bus it should be close to 60 ohms (two 120 ohms in parallel ). If so whilst monitoring the resistance reading waggle the splice joints CAN high and low one at a time also waggle the connectors to the immobiliser, BCU and ECU and speedo to see if any cause the resistance value to change. If one does you're onto a winner!!! For high speed data the terminations are important to prevent data errors.
The system has CRC data error detection. According to the VDO CANcockpit manual if data for a particular gauge is in error the data is discarded and the gauge pointer is driven to 6 degrees below zero so this is a possible cause of the symptoms you observe.
For a more detailed instruction on this test and other things you can do, watch the video link in Luddite's post from about 4:30 to about 7:00
Hope this is of some help
Regards Tony