Just to wrap this problem up, it was hardware related.
The GY-521 board has on-board pull-ups to its LDO’s 3V3 for I2C. Through them the UP^2’s IO pins powed up the board! Removing these pull-ups fixed the inconsistent supply.
I’m guessing the way UPboard and UP^2 drive their IO pins is different (internal pull-ups maybe?), that is why it was (partially) working with the UP, and not UP^2.