Writing data to a specific address in EEPROM
You are cycling outside the string, thus creating undefined behavior.

Try replacing the second block with this:

char first_eeprom_value1;
if (state1 == LOW) {
  state1 = HIGH;
  char example_string1[4] = "True";
  first_eeprom_value1 = EEPROM.read(5);      
  Serial.println(first_eeprom_value1);
  for (int i = 0; i &lt; sizeof(example_string1); i++) {
    EEPROM.update(i + 5, example_string1[i]);
  }
} else {
  state1 = LOW;
  char example_string1[5] = "False";
  first_eeprom_value1 = EEPROM.read(5);     
  Serial.println(first_eeprom_value1);
  for (int i = 0; i &lt; sizeof(example_string1); i++) {
    EEPROM.update(i + 5, example_string1[i]);
  }
}


Please note that this is not optimal; I suggest you to use fixed-length strings, and fill the unused spaces with blanks or 0s, so you can read back all the bytes you wrote in a safe way