rule of thumb is to add a pause before commands in macros, The length depends on latency.
10 = 1s
Code:
/pause 2, /stopsong
/pause 2, /assist TOM
/pause 2, /gsay assisting TOM with %T and mezzing any adds
/cast 5
Also there is anti-spam on p99 so using any msg commands can sometimes get lost if fired too quickly. Feel free to try 1 instead of 2.
How this works is the macro Pauses for # but fires everything on that line (only 1 command can follow on P99) Then after the # paused it proceeds to the next line.