in no particular order...
For a type 4 packet (which sets the SRC data) to be interpreted, it must start with the same 4 bytes as the “ID” of the currently-running program. The value of the register given to the SRC instruction starts from after these 4 bytes in the packet, although the 4 bytes are included when counting the size of the packet.
The “tc” parameter in the GET request contains the ID of the currently-running program, and the “tn” parameter contains the ID of the previous program. Something funny seems to happen when switching from one to the other.