Ich schätze das liegt daran, dass du High und Low Byte vertauschst. Musst du mal überprüfen. Wenn du sowas deklarierst

Dim Schreiben As Word At $250
Dim Schreiben1 As Byte At $250 Overlay
Dim Schreiben2 As Byte At $251 Overlay
Dim Addresse As Word At $260
Dim Addresse1 As Byte At $260 Overlay
Dim Addresse2 As Byte At $261 Overlay
Dim Lesen As Word At $270
Dim Lesen1 As Byte At $270 Overlay
Dim Lesen2 As Byte At $271 Overlay

dann liegt bei 250 das Low-Byte und bei 251 das High-byte der Variable Schreiben. Mit festen Adressen würde ich das Normalerweise sowieso nicht machen. Lieber so:

Dim Schreiben As Word
Dim Schreiben_low As Byte At Schreiben Overlay
Dim Schreiben_high As Byte At $Schreiben+1 Overlay
Dim Addresse As Word
Dim Addresse_low As Byte At Addresse Overlay
Dim Addresse_high As Byte At $Addresse+1 Overlay
Dim Lesen As Word
Dim Lesen_low As Byte At Lesen Overlay
Dim Lesen_high As Byte At Lesen+1 Overlay

So ist dein Code auch auf einen anderen µC portierbar, ohne dass du die Adressen ändern musst.

Außerdem würde ich eine Sub nicht genauso nennen wie eine Variable (Intervall). Bascom kommt zwar damit zurecht, es liest sich aber schwerer.

Gruß

Rolf