You don't need to be the owner of the channel as long as you requested the oath token with &scope=channel_read+channel_editor.
To troubleshoot, comment out the last line of the topic.get/set signals: ";.remove %header | .remove %data" so that you can open up the header and data files to see what the problem is. They're located in your $mircdir, type "/run ." to open it.
Looking back at the code, the "user_name" in the twitch.token alias may be a little confusing, this really refers to the channel name. So if you have an oath token for "#twitch", you would put "twitch" there, following this same form you can put the oath token for many different channels.