While it's true the fans are electrically isolated from the rest of the system, the other components ( hard drives) do maintain an electrical connection to the motherboard via their data cables; this is how they transmit the data.
The data cables are subject to the same issues with potential difference. For a given device, the logical 1/0 signals it sends down the line will only be running at their rated voltages with respect to the ground the device is connected to.
That means what should be, for argument's sake 0- and -5V for logical 0 and 1 respectively could in fact be 10- and 13-15V at the other device. Meanwhile at the other end, we could be seeing voltages in the negatives for logical 1 and 0!
That means (assuming the PSUs have mismatched grounds) that at best you wouldn't have a working system, because as far as either device is concerned, their communication lines are locked high or low. At worst, it would damage your components and all sorts of interesting things could happen!
After firing both PSUs up without anything connected, I'd probably test with a multimeter across ground on both of them to see if there's a difference, and then make sure to connect their ground cables together for good measure. Make sure you don't try this on a computer you care about!
Array parameters do not play well with the check_box helper. According to the HTML specification unchecked checkboxes submit no value. However it is often convenient for a checkbox to always submit a value. The check_box helper fakes this by creating an auxiliary hidden input with the same name. If the checkbox is unchecked only the hidden input is submitted and if it is checked then both are submitted but the value submitted by the checkbox takes precedence. When working with array parameters this duplicate submission will confuse Rails since duplicate input names are how it decides when to start a new array element. It is preferable to either use check_box_tag or to use hashes instead of arrays.