OK,
I see you did it but, I don't know how string_1 re-writes itself while reading itself .
If it works, then it works ! That will be how I will build an assorted string to send on TX int.
Like you did on other post, its simple to: turn on TXint, send 1 complete array up to say, 0 then turn off TX.

1 point of differ, to my understanding, all those arrays srt_1 and 2 are in RAM mem.

strings and numbers stored in program mem is done with pokecode or writecode or in asm with dw,db or de.
Those items need to be retrieved with peekcode or readcode into PB 1 char or word at a time.


Code:
asm                           ;strings placed at top of program mem if there is room
str1   org 0xb100           ;this has to be placed at the end of code
    db  "<name=IDLE_TIME,value=",0 
str2   org 0xb200   
    db  "<name=LONG,value=",0 
str3   org 0xb300    
   db  "<name=IP Address,value= 192.168.1.3>",0   
endasm
this code places at lable str1, location B200 hex , db (data byte) <nam......etc
I think, these strings, or which ever ones you wanted, would need to be loaded, 1 char at a time into somearray[] then acted on with arraywrite to make final send like you have done.
don