irethedo:
In the WireRequestFrom(0x21, 1); // request 1 byte from 0x42h - revision
statement I am reading an I2C device on the secondary device which is why the address is different
as I want to verify that the power did switch on/off on the secondary device.
You don't modify the device address to read from it. The library does that. You are reading a different device that way (which probably doesn't exist).
Fix that first.