I think what I really need to know is how to allocate which port I would like Arduino to read the IMUs from, since if that is possible, then I could get readings from the 2 IMUs from 2 different port pairs.
"The Arduino Mega itself has Port 20 and 21 as SDA and SCL respectively, and in addition, the two unlabeled ports above AREF are also SDA and SCL."
They are the same pins.
Does BNO055 have an Address select pin? Set it high for one device, low for other, and then you use two different I2C addresses to talk to them one at a time.
See page 91 of the datasheet for the base address to use for each device:
"4.6 I2C Protocol
The I²C bus uses SCL (= SCx pin, serial clock) and SDA (= SDx pin, serial data input and
output) signal lines. Both lines are connected to VDDIO externally via pull-up resistors so that
they are pulled high when the bus is free.
The I²C interface of the BNO055 is compatible with the I²C Specification UM10204 Rev. 03
(19 June 2007), available at http://www.nxp.com. The BNO055 supports I²C standard mode
and fast mode, only 7-bit address mode is supported. The BNO055 I²C interface uses clock
stretching.
What I tried was to let one turn off while the other is on, alternatingly. However it is not switching with each instance.
I think right now the problem is with the coding rather than the physical set up.
I am not quite certain how else I should proceed with the coding, since I could not figure a way to request Arduino to Serial.print an orientation from a specific IMU.
Post your full code please. You need to initialise 2 BNO055 instances with 0x28 and 0x29 as their addresses. Set 1 sensor's ADR pin to high and the other's to low.