Hmm. I wonder if this is because your final output message comes from the API... so you don't have selected tokens, your playerid, or who sent the message in the message object. Maybe your roll template needs one or more of those to do what it does.
The way to get around that is to install one more metascript: SelectManager. Without going too into the weeds on what SelectManager does, it addresses the exact problem I just described. As far as whether the problem I described is the problem you are having... we'll have to see.
Install SelectManager. It will come preconfigured to give back the selected tokens to an API-generated message. To see what is currently configured, run:
!smconfig
The selected tokens might be enough to correct your issue, so test your macro. If it doesn't work, configure SelectManager to also give back the playerid using the below command:
!smconfig +playerid
Then test your macro again. If THAT doesn't work, configure SM to give back the "who":
!smconfig +who
To turn any of those off again, just replace the + with a -.
Hopefully one of those will solve your issue, but post back if it does not.