is it possible to do some debug statements to find out if the value was correct at some stage and then corrupted

'================================================
DOUT: IF TX2_FLAG THEN RETURN 'TX2 flag says we are still transmitting

DATA_OUT [1] = "*"
DATA_OUT [2] = "D"
DATA_OUT [3] = "*"
DATA_OUT [4] = HEAD_OUT
DATA_OUT [5] = FUNC_OUT
DATA_OUT [6] = PAN_OUT
DATA_OUT [7] = TILT_OUT
DATA_OUT [8] = ZOOM_OUT
DATA_OUT [9] = FOCUS_OUT

TEMP2 = 0
FOR TEMP1 = 4 TO 9
TEMP2 = TEMP2 + DATA_OUT [TEMP1]
NEXT
ERROR_OUT = TEMP2 ^ $FF
debug temp2
DATA_OUT [10] = ERROR_OUT
debug data_out[10]
POINTER_DOUT2 = 1 'start with byte 1
TX2_BYTES = 10 'end with byte 10
@ INT_ENABLE TX2_INT 'send it now via ISR

RETURN

'================================================
you might be overrunning another array somewhere

just a thought snippets are notorious for their difficulty to debug