Ясно, вы просто не понимаете как работают эти функции...
Есть память, сколько то там байт.
Вызов write_string_EEPROM(0,"чтото") запишет в эту память:
[0] - 5 (это длина строки)
[1] - 'ч'
[2] - 'т'
[3] - 'о'
[4] - 'т'
[5] - 'о'
А read_string_EEPROM(0) честно это прочтет. Но в [1] ничего...