Remote AT Commands not receiving an ack and fails

Hi, I am using the python xbee library to communicate with an xbee-pro sx device.
I am trying to test remote AT commands between two xbees on two different computers and i want to change the device’s network ID and HP with remote AT command.
xbee A parameters:
ID: 2000
HP: 3
AP: 0
BD: 57600
PL: low

xbee B parameters:
ID: 1000
HP: 3
AP: 0
BD: 57600
PL: low

both xbees are few meters away from each other and communicating through XCTU (when xbee b is on the same net, so the distance is not the issue)
I am trying to run the following command list with the python library:
set xbee A to AP to 1 with (serial) AT command
set xbee A to ID to 1000 with (serial) AT command
set xbee A to DL to xbee B DH (serial) AT command
set xbee A to DH to xbee B DL (serial) AT command

set xbee B to BD 1200 with (remote) AT command
set xbee B to ID 2000 with (remote) AT command
set xbee A to ID to 2000 with (serial) AT command
set xbee B to BD 57600 with (remote) AT command

when I’m trying to run that, 99% of the times the first Remote AT command fails (not receiving an ack and trying again), and that failure happens also if I try to configure remote AT command through the XCTU

also, in most of the times, the xbee retrying and fails to get the ACK of the first remote AT command, even if I set the retry parameter to 10 or more. after that, when I’m trying to open the XCTU, the xbee needs a reset because its getting an error somewhere, sometimes it throws me an invalidOperationModeException and sometimes its just entering in a kind of a deadlock that needs a physical reset. the transmitting LEDs lights up but there is no packet that being sent, nothing is literally being sent from it.

Anyone knows why those bugs happen? and how can I fix them?

The ability to send remote AT commands requires the use of API mode and API frames.