2X 7 Segement Display with I2C bus

Hi, i am doing a Counting up timer using 2x of the segment display and connecting it to 2x Pcf8574 IC as the I/O expander.
The program is to count from 0 to 99 when the button is pressed once.
The code below initializes the two i2c to both sync and count from 0-9 (to make sure both 7 segment works)
There is no error when compiling the codes but only the left 7 segment is able to count up till 9 and reset while the right 7 segment only has the segment (d) lighted up
7 Segment is a common anode.

Main Program Code

#include <Wire.h>
#include <a_i2c.h>
#define expander1 0x20
#define expander2 0x21

void countUP(void);

int inPin = 7;

void setup() {
  pinMode(inPin, INPUT);
  Serial.begin(57600);
  i2cInit();
}

void loop () {
  int i;
  
  i = digitalRead(inPin);
  
  while(i == 0) {
  Serial.println("Click once to add : ");
  countUP();
  }
  
}

Function Code

#define expander1 0x20
#define expander2 0x21

void expanderWrite1(uint8_t _data );
void expanderWrite2(uint8_t _data );


void countUP (void) {
  
  for(int i=0; i<=9; i++){
    
  Serial.println(i);
  switch (i) {
    case 0:
      expanderWrite1(11000000);
      expanderWrite2(11000000);
      break;
    case 1:
      expanderWrite1(B11111001);
      expanderWrite2(B11111001);
      break;
    case 2:
      expanderWrite1(B10100100);
      expanderWrite2(B10100100);
      break;
    case 3:
      expanderWrite1(B10110000);
      expanderWrite2(B10110000);
      break;
    case 4:
      expanderWrite1(B10011001);
      expanderWrite2(B10011001);
      break;
     case 5:
      expanderWrite1(B10010010);
      expanderWrite2(B10010010);
      break;
    case 6:
      expanderWrite1(B10000010);
      expanderWrite2(B10000010);
      break;
    case 7:
      expanderWrite1(B11111000);
      expanderWrite2(B11111000);
      break;
    case 8:
      expanderWrite1(B10000000);
      expanderWrite2(B10000000);
      break;
    case 9:
      expanderWrite1(B10010000);
      expanderWrite2(B10010000);
      break;
    }
    delay(1000);
  }
  
}

void expanderWrite1(uint8_t _data ) {
  i2cSendData(expander1,1,&_data);
}
void expanderWrite2(uint8_t _data ) {
  i2cSendData(expander2,1,&_data);
}

Thannk in advance.

The i2c_init stores all the Wire.h functions and acts the same.