i cant help you with the above script as a few things didnt make sense like the ! ison also i dont know what a relay spammer is and why you would join that channel. Anyways here is how i would do it as per your instructions if a user pms you whilst being on a spamchannel it will cycle through your channels and ban clones of the banned address so if there is more then one clone on the channel it would kick that aswell, made this during extra lessons :P so didnt have too much time to test it out. i used ISWM which is a wild match so may sometimes kick innocent users but i find its effective

 ON *:TEXT:*:?: {
  if ($nick ison #spamchannel) {
    var %c = 1, %i = $chan(0)
    while (%c <= %i) {
      if ($me isop $chan(%c)) {
        relayban $chan(%c) $address($nick,3)
        inc %c
alias relayban { 
  var %lol = 1
  mode $1 +b $2
  while ($nick($$1,%lol) != $null) {
    IF ($2 iswm $ial($nick($$1,%lol))) { 
      kick $1 $nick($$1,%lol) 14Relay Spammer Detected
    inc %lol