Судя по всему, косячок возникает в Кейле при сохранении HEX-файла. При выполнении команды save mem.hex i:0x00,i:0xff в первую строку HEX-файла пишется :0200000400F307 что должно являться признаком памяти типа IDATA.
На самом деле эта строка должна выглядеть так: :02000004F30007 (т.е. F3 и 00 нужно поменять местами)
После ручного изменения HEX-файла он нормально загружается командой LOAD (проверил в Keil uVision v3.00)
PS: что интересно, некоторые области памяти (например, XDATA) сохраняются корректно