Well you can always use the $eval identifiers to evaluate 2 or 3 times the values...
like:
set %userchans $eval( $reptok(%a,$+($chan $+ *),$+($chan $+ $chr(124) $+ $ctime),1,32), 2)
the last numbers belong to the $eval method that will in this case evaluate 2 times de value and get the proper data...
hope this had help...
What was happening is the $+(%chan,*) in the $reptok wasn't working and detecting the channel in channel or channel|23409865 and either adding the $ctime to channel or updating the $ctime in channel|23409865. The only way I could get it to work was to use the seperate wildcard search to find the exact token to replace.