Ähem,

Das macht auch so wenig Sinn.
1. EEMEM solltest du selbst nicht definieren - das wird in eeprom.h gemacht.
2. Warum legst du das nicht direkt als Array aus Structs an? Deine Konstruktion mit einem zweidimensionalen Array ist unnötig komplex.
3. eeFoo_S_ChProgamm[i] ist bereits ein Zeiger, das "&" davor ist unnötig.

Das Map- und Listfile (.map und .lst) wären ganz hilfreich um die verwendeten Adressen zu sehen ...

mfG
Markus

PS: Da der Compiler/Linker die Daten frei platzieren darf, ist es empfehlenswert ihn dazu zu zwingen, die Struktur im EEPROM immer an gleicher Stelle zu platzieren. Ich für meinen Teil bette alle EEPROM-Daten daher in ein Struct ein, welches alle frei bleibenden Bytes mit einem Dummy-Array belegt (und ferner das erste Byte blockiert).