Great. I think I may have found out why.

Try running this with a terminal program. When you change array elements
11-15 in TelephoneNo1 from ASCII 0's to null characters, it does not output
what you might expect.
Code:
DEFINE LOADER_USED 1
DEFINE OSC 4

TelephoneNo1 var byte[16]
X VAR BYTE
Y VAR BYTE

MAIN:
    FOR X = 0 TO 10
      LOOKUP X,["01234567890"],Y ' 11 digit phone number
      TelephoneNo1[X] = Y
    NEXT X
    FOR X = 11 TO 15 ' Now load unused array elements with something
      TelephoneNo1[X] = "0" ' Change this to = 0 VS "0" to see the effect.
    NEXT X
       
    HSEROUT [34,STR TelephoneNo1\12,34]
    HSEROUT [13,10]
    PAUSE 500
    GOTO MAIN
     
    ' Incorrect
    ' Outputs this when 11-15 are assigned null chars
    ' "01234567890"01234567890"01234567890"01234567890"01234567890
    ' Should be (assuming it continues when reaching the 1st null char #12)
    ' "01234567890"
    ' "01234567890", etc,,

    ' Correct
    ' Outputs this when 11-15 are assigned ASCII 0's
    ' "012345678900"
    ' "012345678900"
    ' "012345678900"
    ' "012345678900"
The null characters seem to be screwing up things. Assuming HSEROUT will
drop the 1st null character in your string, then send the next valid characters
afterwards, may be the problem.

It seems to choke after bumping into the 1st null char, and not send the
remainder of data as expected in the HSEROUT line.

Maybe the one that originally worked was with an earlier version of PBP, and
an error has been introduced in the latest version? Could explain why it
worked then and doesn't now with the same code.