1. I would put a 1 second pause to Master at initial startup (no pause to slave)
2. I would also make a minor modification as below:

Instead of HSEROUT ["S0"] I would use HSEROUT ["XYZ","0"]

and then
instead of hserin 10,MAIN,[WAIT ("S"),DATARECEIVED] ' Looking for "S0"

I would use HSERIN 10,MAIN,[WAIT ("XYZ"),DATARECEIVED] ' Looking for "0"


------------------