I don't use twitch, so I'm not familiar with the IRC3 tags used to send the sub info. You should probably create a @SUB window where your alias echoes the string it sees before processing them, to see whether or not the incoming string was malformed or not. Or to see whether it's the first 23, the last 23, or 17 were either not formatted as expected, or split across multiple incoming messages.

The length should be less of an issue in 7.53 now that internal line lengths are longer. mIRC has options/irc/messages choice to split long messages into several messages to fit within the much shorter limit expected by the server - but you don't want these types of messages to be split however mirc decides to do it.

I always add a lot of debug messages while I make new aliases, and had to take a lot of them out before posting that code yesterday.

As for the !tspam, it's hard to tell why it's doing that without seeing the code. Repeats could be from a timer, or a socket command, or you have a que that's not deleting the instruction after it's been 'done'.