Problem multiplexing two devices with same address

I need some guidance for the following problem:

For my project I am trying to simultaneously run two devices with the same address though the I2C bus onto the arduino.
Device :

From my research I know it is impossible to simultaneously run two of the same devices on the I2C bus so I am trying to use a multiplexer:

I am using the lilypad arduino and I am using the digital pins 12 and 13 as outputs for the select and enable pins on the MUX.

The problem I am having is that when I initialize the libraries I have for my two devices it seems to override all the digital pins and there is now output when i set them to high

void setup() { 
  pinMode(EnPin, OUTPUT);
  pinMode(SelPin, OUTPUT);
  
  Serial.begin(115200);
  Wire.begin();
  
  delay(5);
  sixDOF.init(); //begin the IMU
  sixDOF2.init();
  my3IMU.init();
  my3IMU2.init();
  delay(5);
}
void loop() { 
  digitalWrite(EnPin, HIGH);
  digitalWrite(SelPin, HIGH);
  
}

I hope that someone can help me find a solution

Do you have this also?

byte EnPin = 12;
byte SelPin = 13;

Sorry I should have posted up the full code:

#include <FreeSixIMU.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>

#define DEBUG
#ifdef DEBUG
#include "DebugUtils.h"
#endif

#include "CommunicationUtils.h"
#include "FreeSixIMU.h"
#include <Wire.h>

float q[4];
float x[4];
float angles[3];
float angles2[3];// yaw pitch roll
int SDOFvalues[6];
int SDOFvalues2[6];
int EnPin = 13;
int SelPin = 12;


// Set the FreeSixIMU object
FreeSixIMU sixDOF = FreeSixIMU();
FreeSixIMU sixDOF2 = FreeSixIMU();
FreeSixIMU my3IMU = FreeSixIMU();
FreeSixIMU my3IMU2 = FreeSixIMU();

void setup() { 
  pinMode(EnPin, OUTPUT);
  pinMode(SelPin, OUTPUT);
  
  Serial.begin(115200);
  Wire.begin();
  
  delay(5);
  sixDOF.init(); //begin the IMU
  sixDOF2.init();
  my3IMU.init();
  my3IMU2.init();
  delay(5);
}

void loop() { 
  
  digitalWrite(EnPin, HIGH);
  digitalWrite(SelPin, HIGH);
  
  sixDOF.getQ(q);
  sixDOF.getEuler(angles);
  my3IMU.getRawValues(SDOFvalues);
  
  Serial.print(millis());
  Serial.print(" | ");
  Serial.print(angles[0]);
  Serial.print("  ");  
  Serial.print(angles[1]);
  Serial.print("  ");
  Serial.print(angles[2]);
  Serial.print("  ");
  Serial.print(q[0]);
  Serial.print("  ");  
  Serial.print(q[1]);
  Serial.print("  ");
  Serial.print(q[2]);
  Serial.print("  ");
  Serial.print(q[3]);
  Serial.print("  ");
  Serial.print(SDOFvalues[3]);//gyro values 3-5
  Serial.print("  ");
  Serial.print(SDOFvalues[4]);
  Serial.print("  ");
  Serial.println(SDOFvalues[5]);
  
  delay(5);
  
  digitalWrite(SelPin, LOW);
  
  sixDOF2.getQ(x);
  sixDOF2.getEuler(angles2);
  my3IMU2.getRawValues(SDOFvalues2);
  
  Serial.print(millis());
  Serial.print(" | ");
  Serial.print(angles2[0]);
  Serial.print("  ");  
  Serial.print(angles2[1]);
  Serial.print("  ");
  Serial.print(angles2[2]);
  Serial.print("  ");
  Serial.print(x[0]);
  Serial.print("  ");  
  Serial.print(x[1]);
  Serial.print("  ");
  Serial.print(x[2]);
  Serial.print("  ");
  Serial.print(x[3]);
  Serial.print("  ");
  Serial.print(SDOFvalues2[3]);//gyro values 3-5
  Serial.print("  ");
  Serial.print(SDOFvalues2[4]);
  Serial.print("  ");
  Serial.println(SDOFvalues2[5]);
  
  delay(5); 
}

Does it matter that I used int instead of byte?

The multiplexer complements inputs into outputs. Did you account for that?

Also, the I2C bus is two way. How are you connecting the multiplexer to the bus (assuming you had a non-inverting output)?

The multiplexer complements inputs into outputs. Did you account for that?

Sorry, I posted up the wrong MUX, it is the 257 which doesn't invert its outputs:

Also, the I2C bus is two way. How are you connecting the multiplexer to the bus (assuming you had a non-inverting output)?

I am inputting the SDA and SCL from device one into the A1 and A2 inputs of the MUX
I am inputting the SDA and SCL from device one into the B1 and B2 inputs of the MUX
Output Y1 is connected to analogue pin 4 (default SDA)
Output Y2 is connected to analogue pin 5 (default SCL)

I2C is 2 way comm's on the SDA line.
What you describe does not let SDA from the Arduino go out.

Need an I2C mux,

or an analog switch.

Connect COM to '328, NO & NC to your devices.

You can also try to power the I2C chip with a digital pin.

Next time post the right parts! Wasting my time with the wrong one.