HEF4511 with multiple 7 Segment Displays

Hi, I'm fairly new to arduino, and I've hit my first problem.

I'm trying to control 4 seven segment displays using HEF4511 decoders. I've connected all the data bits up as common connections between all of the decoders, and the latch enables seperately to their own pin.

My understanding on how to display different numbers on each display is:

Set the LE of the wanted decoder LOW > Set the data bits to the correct binary value > Set the LE of the wanted decoder HIGH so it holds its value > Repeat for the next one etc

My problem, is that when the program is running, occassionally one of the seven segments will change back to 0. Now the only way that the seven segment could be changed to 0, is if the LE was LOW, and the data bits were all LOW, which as you can see below, is not in the program anywhere.

Here is a video to try and make it clearer:

The code is below:

/*

*/

void setup() {                
  pinMode(8, OUTPUT);   
  pinMode(9, OUTPUT);   
  pinMode(10, OUTPUT);   
  pinMode(11, OUTPUT);   
  pinMode(12, OUTPUT);     
  pinMode(13, OUTPUT);   
  pinMode(14, OUTPUT);   
  pinMode(15, OUTPUT);   
  pinMode(16, OUTPUT);   
  digitalWrite(16, HIGH); //Lamp Test
}

void loop() {
  
  digitalWrite(8, LOW); //7 Segment 1
  delay(1000); 
  digitalWrite(12, HIGH); //Binary LSB
  digitalWrite(13, LOW); 
  digitalWrite(14, LOW); 
  digitalWrite(15, LOW); //Binary MSB
  delay(1000); 
  digitalWrite(8, HIGH); //7 Segment 1 
  
  delay(1000);
  
  digitalWrite(9, LOW); //7 Segment 2
  delay(1000); 
  digitalWrite(12, LOW); //Binary LSB
  digitalWrite(13, HIGH); 
  digitalWrite(14, LOW); 
  digitalWrite(15, LOW); //Binary MSB
  delay(1000); 
  digitalWrite(9, HIGH); //7 Segment 2
  delay(1000); 
 

}

(I have set the delays a lot longer than they would normally be to try and make it clearer for the video)

Here is a link to the decoder datasheet: HEF4511BP Datasheet(PDF) - NXP Semiconductors

Any ideas or suggestions would be greatly appreciated.

byte Latch1 = 8;
byte Latch2 = 9;
byte LT = 16;
byte BCDbit0 = 12;
byte BCDbit1 = 13;
byte BCDbit2 = 14;
byte BCDbit3 = 15;

void setup() 
{                
  pinMode(Latch1, OUTPUT);   
  pinMode(Latch2, OUTPUT);   
  pinMode(10, OUTPUT);      // for ??
  pinMode(11, OUTPUT);      // for ?? 
  pinMode(BCDbit0, OUTPUT);     
  pinMode(BCDbit1, OUTPUT);   
  pinMode(BCDbit2, OUTPUT);   
  pinMode(BCDbit3, OUTPUT);   
  pinMode(16, OUTPUT);      // for ??
  digitalWrite(LT, HIGH);   // Lamp Test
  digitalWrite(Latch1, HIGH);
  digitalWrite(Latch2, HIGH);
}

void loop() 
{   
  //  1 2
  digitalWrite(BCDbit0, HIGH); //Binary LSB
  digitalWrite(BCDbit1, LOW); 
  digitalWrite(BCDbit2, LOW); 
  digitalWrite(BCDbit3, LOW); //Binary MSB
  digitalWrite(Latch1, LOW);
  delay(100);
  digitalWrite(Latch1, HIGH);
  
  digitalWrite(BCDbit0, LOW); //Binary LSB
  digitalWrite(BCDbit1, HIGH); 
  digitalWrite(BCDbit2, LOW); 
  digitalWrite(BCDbit3, LOW); //Binary MSB
  digitalWrite(Latch2, LOW); 
  delay(100);
  digitalWrite(Latch2, HIGH);
  
  delay(1000); 
  
  //  3 4
  digitalWrite(BCDbit0, HIGH); //Binary LSB
  digitalWrite(BCDbit1, HIGH); 
  digitalWrite(BCDbit2, LOW); 
  digitalWrite(BCDbit3, LOW); //Binary MSB
  digitalWrite(Latch1, LOW);
  delay(100);
  digitalWrite(Latch1, HIGH);
  
  digitalWrite(BCDbit0, LOW); //Binary LSB
  digitalWrite(BCDbit1, LOW); 
  digitalWrite(BCDbit2, HIGH); 
  digitalWrite(BCDbit3, LOW); //Binary MSB
  digitalWrite(Latch2, LOW); 
  delay(100);
  digitalWrite(Latch2, HIGH);  
  
  delay(1000);
}

What are you doing with 4511 pin_4? Pull-up to +V?