Да и не только far... если объявить xdata, то до 8 кбайт (встроенная) все нормально, а как только выше - сразу искажаются младшие байты слов.
Т.е. младший байт - это 0 + шумок в пару младших разрядов.
Если старшие пишутся нормально, то видимо проблема не в самой памяти.