Separate-Ground voltage measurement

That's interesting, as when the output of the source Arduino is high, the LED of the opto is on, pulling down the input of the destination Arduino. In other words: you're reversing the signal here.

Unless, that is, you have the source wired so the Arduino switches it on when low. That's of course also possible, without the extra transistor, by connecting the opto with resistor between Vcc and the Tx pin.