Hi,
I do not know how you are reading and check the data. I suggest you to use either address 0xF91000'L or 0x0F9000'G to the debugger recognizes which memory space you want to access. The debugger does not considers memory window, you have to confirm it by 'G or 'L.

I have rewritten your code to the CodeWarrior asm project with comments and it is:
LDAA #$F9 ; write RPAGE = 0xF9
STAA RPAGE
LDD #$1234 ; write rpage_off = 0xF91000 == gpage_off = 0x0F9000
STD $1000
LDD #$1235 ; even RPAGE is set for 0xF9 the local address 0x2000 will be written
STD $2000 ; because RPAGE window can only be 1000-1FFF so RPAGE is not counted into access and
; it will be written:
; local addres 0x2000 or global addres 0x0FE000'G or rpage_off 0xFE1000
LDD #$1236 ; even RPAGE is set for 0xF9 the local address 0x3000 will be written
STD $3000 ; because RPAGE window can only be 1000-1FFF so RPAGE is not counted into access and
; it will be written:
; local addres 0x3000 or global addres 0x0FF000'G or rpage_off 0xFF1000
LDD #$1236 ; it is nonsense because even everything as in previous case is valid but
STD $4000 ; it is not possible to write to address 0x4000 because it is nonpaged flash address space
LDD #$1236 ; it is nonsense because even everything as in previous case is valid but
STD $5000 ; it is not possible to write to address 0x5000 because it is nonpaged flash address space
LDD #$1236 ; it is nonsense because even everything as in previous case is valid but
STD $6000 ; it is not possible to write to address 0x6000 because it is nonpaged flash address space
LDD #$1236 ; it is nonsense because even everything as in previous case is valid but
STD $7000 ; it is not possible to write to address 0x7000 because it is nonpaged flash address space
LDD #$1236 ; it is nonsense because you are trying to write to a flash space given by address PPAGE_off
STD $8000 ; because you set offset from PPAGE paged window 8000-BFFF
The result for the first three working and correct approaches are here>
1)

2)

3)

It is necessary to think only on the last 16 bits and this value select the addressing mode whether it will be near 6 bit address only or it will be RPAGE used or PPAGE or EPAGE. I do not want to talk about GPAGE now. (GPAGE is used with as instructins GLD GLS)
*******************************************
I do not want but I suppose I will confuse you. There is one memory space with overlaps when you use short addressing mode with addresses 0x4000-0x7FFF. This address space can either address internal RAM or external bus or internal Flash. It is always necessary to think about global address space to understand the placement because it is linear and nothing overlaps. The address space 0x4000-0x7FFF is good to be think about if you want to access this RAM space – of course, if it is defined in the device, or if you have confusing existence and access in the case of phantom device.
I forget to mention. Some XEQ512 devices were made as a phantoms of XEP100 devices which has master set of peripherals and memory map. The phantom is created by simple definition of smaller memory map and less amount of peripherals or reduced features even it is the same device like “master” device. However, the phantom is not allowed to be used like a master device – loss of guarantee – the reason is that undefined peripherals o memory have limited tests so they do not have full guarantee.
I have attached the memory map of the master device. You can see it has also addresses 4000-5000 and 6000-7000 in the memory map of the RAM.
What is important is that the part 4000-7000 can be visible in the memory map as unpaged RAM or as a unpaged flash.
The reference manual….
RAMHM
RAM only in higher Half of the memory map
Write: Once in normal and emulation modes and anytime in special modes
0 Accesses to $4000–$7FFF will be mapped to $14_4000-$14_7FFF in the global memory space (external
access).
1 Accesses to $4000–$7FFF will be mapped to $0F_C000-$0F_FFFF in the global memory space (RAM area).
ROMHM
FLASH or ROM only in higher Half of Memory Map
Write: Once in normal and emulation modes and anytime in special modes
0 The fixed page of Flash or ROM can be accessed in the lower half of the memory map. Accesses to
0x4000–0x7FFF will be mapped to 0x7F_4000-0x7F_7FFF in the global memory space.
1 Disables access to the Flash or ROM in the lower half of the memory map.These physical locations of the
Flash or ROM can still be accessed through the program page window. Accesses to 0x4000–0x7FFF will be
mapped to 0x14_4000-0x14_7FFF in the global memory space (external access).
So, reset status of RAMHM = 0. It means, accesses to 0x4000–0x7FFF will be mapped to 0x144000-0x147FFF in the global memory space and address appears on the external bus – you access a memory at external bus .
If you change RAMHM = 1. It means, accesses to 0x4000–0x7FFF will be mapped to 0x0FC000-0x0FFFFF in the global memory space and address appears in the RAM space – you access the internal RAM memory.
Reset status of ROMHM = 0. It defines where the short flash 0x4000-0x7FFF will be mapped. When this bit is 0 then the MCU will read at the address 4000-7FFF is visible as a flash and can be accessed with short addresses 4000-7FFF and Global addresses 0x7F4000-0x7F7FFF and PPAGE address 0xFD8000-0xFDBFFF.
However, if you set ROMHM=1, the direct short access to the flash 0x4000 – 0x7FFF disappears and you still access this flash by Global addresses 0x7F4000-0x7F7FFF and PPAGE address 0xFD8000-0xFDBFFF. This s used when you want to use address 0x4000-0x7FFF as a address space for RAM.
Best regards,
Ladislav