You don't 'need' to do that, you do 'want', because you could simply take your 3 big event, put them in 3 alias, and call them as I showed, it should work just the same.
Anyways, if you want to keep your 3 events, just use the tokenize + $regsubex on top of each event, and use $1- as if there were no extra things in front of each message

Here is something you can do if you want to keep the matching part inside the event definition :
alias fontpatt returnex /^##\*#.*?#\*##\Q $+ $replacecs($1-,\E,\E\\E\Q) $+ \E$/S
on $*:text:$($fontpatt(.test)):#:{ echo -a real message is .test }