One thing you can do while waiting for the MXP experts to respond is to log what is being outputted to the user in each of those cases. Log the outgoing string as late as possible, in the func that does the sending. There's string processing going on in mob echo that could be breaking or escaping some necessary characters.
It looks like you might be using Nick Gammon's MXP implementation. In that case, MXPTAG is introducing special characters that the output routines transform into angle brackets, while escaping angle brackets. In other words, your mob prog echoing <SEND> is actually sending <SEND> to the client.
You might have to change your mob prob echo routines to detect that #MXP tag you put in front, or to manually convert angle brackets to the special characters used by MXPTAG.