You wrote: "Somewhere you probably need the DC 0V reference tied to building ground". What does that mean? When I head the problem with the electrical shocks I was putting a cable from the steel carrier system of the whole rig to the ground an the problem was gone.
I don't understand why I should connect the Arduino input connection to building ground? Isn't this already done, I mean it already HAS a ground? No? Sorry, I have been around with my girl friend when I was supposed to learn this at school. Sometimes I regret that, but not really.
Simply put, between the 240 to 4.5V power supplies, your laptop power supply, and whatever powers you USB hubs, you have a whole lot of voltage sources all hooked together.
But none of them are actually connected to "ground" and so they just "float" to some voltage level relative to ground. This actual voltage is determined by the various device leakage currents and high impedance paths to ground.
When you touch any point on such a system, you get a shock as your body becomes a lower impedance path to ground. The size of the shock depends on the amount of leakage current and the resistance of the existing high impedance paths to ground.
The steel carrier of your system probably gets charged via the tripod socket on the camera to the camera ground to the power supply ground. It's all floating until you ground it somewhere. That's exactly what you did when you ran a cable from the carrier system to ground - you pulled the floating system back to ground. However, a better way to have grounded the system would be to have grounded the 0v level of any of the power supplies, or USB hub, or Arduino, rather than an accidental path though the carrier frame.