Strings haben einen String-Begrenzer und zwar das Zeichen &H00.
Dieses Zeichen wird an das Ende jedes Strings sowohl im SRAM als auch im EEPROM gespeichert.
Darum brauchen die Strings auch 1 Zeichen mehr Platz als es bei DIM definiert ist. In dieses zusatzliche Byte wird der String-Begrenzer gespeichert, falls der String selbst die ganze geDIM-te Länge benötigt.
Wird ein String geschrieben, wird immer an das Ende des Strings auch das &H00 abgespeichert.
Strings werden bis zu diesem Stringbegrenzer gelesen.

Ich habe dein Beispiel im Simulator ausprobiert und hier werden die Strings korrekt ins EEPROM abgespeichert und auch wieder ausgelesen.

Da du die Variablen im EEPROM nicht definierst, sondern mit absoluten Adressen beschreibst (zumindest in deinem Beispiel), könntest Du vielleicht übersehen haben, dass dieser String in Wirklichkeit 17 Bytes im EEPROM belegt oder der Fehler liegt möglicherweise woanders in deinem Code, was aber nicht ersichtlich ist, da Du nur Code-Fragmente angegeben hast.