According to Table 4-7 on page 90 of the BNO055 datasheet at adafruit.com, the BNO055 supports three I2C addresses: 0x28 or 0x29 in slave mode (selected by COM3 being low or high, respectively), or 0x40 in the HID-I2C configuration.
According to the diagram on page 2 in file BNO055_Shuttleboard_Flyer.pdf (Bosch's description of the BNO055 Shuttle Board), COM3 on pin 17 of the BNO055 (or, PSERCOM3) is wired via 0Ω jumper R106 to the middle pin of J102.
If you plan to get data from five different BNO055's, you may need to use a multiplexer (or several I/O's) to set COM3 on one BNO055 board to a different level than on the other four, to select one of the five boards for access. For example, you could use a 7438 (eg, an MM74HC138 or DM74LS138). When you set the 7438's address input to
j, line Yⱼ (from among Y₀ to Y₇) will go low while the the other Yᵢ remain high. The BNO055 with COM3 attached to Yⱼ then would be the only BNO055 that would respond to I2C address 0x28.
For testing, you could set up several BNO055's and use several separate I/O lines to control several COM3 inputs. Using separate I/O lines takes five I/O lines for five COM3's, vs three I/O lines using a 7438 multiplexer; saving two lines might not be worth the extra effort of obtaining and using a multiplexer.
Another approach is to use two more Arduino (eg Pro Mini or Micro) units to support separate I2C busses for additional BNO055's. These auxiliary Arduinos could do some data reduction before sending data (via serial or I2C) to the principal Arduino.
Note, it is not clear to me that using more than one or two BNO055's makes sense. If the assemblage of BNO055's moves through space more or less as a unit, but with attitudes, roll rates, etc differing between BNO055's, then 3/4 or so of the data from different BNO055's will be the same. Possibly less-general sensors (eg, without magnetometer) with different I2C addresses could be used instead.