I can't see why editing the script wouldn't work. Perhaps you can add some debug echo messages to the status window to see where the problem. For the line where you now have

IF (MindUser????? iswm $2)

... insert a blank line above + below it, so you can paste this echo messages above/below it:

echo -s debug: $scriptline $nopath($script) $2

For most nicks this should show 1 echo message, but for guest nicks it should show 2 of them. If you don't see either echo message for a guestnick, then scroll up and also add the echo on the line above

; Ban evasion or rejoin kick

* *

Here's a quick and dirty stab at doing what you're wanting, I arbitrarily picked a big channel there, so you'll need to change the #channelname. I added comments to the code that should make it easier for you to follow it

This throttles the whois to be no more often than once per 5 seconds, but you may need to bump that up if the network doesn't like it that fast.

Every 5 secs it gets the next nick from the list to do a /whois on them, and doesn't take them off the list until a successful /whois reply comes back, in case the network has ignored your request. I see the whois has a line saying if someone is logged into an account, and another line showing they've identified to this specific nick, so I hooked the 2nd one.

When YOU join that channel, it adds everyone already in the channel into the queue, so it may take a while to work your way through it.

Code
alias WhoisSnooper {
  if (WhoisSnooper* !iswm $ctimer) {
    ;don't do anything if they are already flagged as registered
    if ($ialmark($1,registered)) return
    ; add nick to list, addtok avoids duplicates. ialmark goes away when $me exits $ial
    .ialmark -n $me list $addtok($ialmark($me,list).mark,$1,32)
    ; start the timer is not already set * 5 sec delay between whois'ing
    ; we want timer gone if we disconnect so don't use -o
    if (!$timer(WhoisSnooper $+ $network)) .timerWhoisSnooper $+ $network 0 5 WhoisSnooper
    ; wait for next 5sec interval to do the /whois
    return
  }
  var %nick $gettok($ialmark($me,list).mark,1,32)
  ; if list was empty then stop timer
  if (%nick == $null) { .ialmark -nr $me list | return }
  ; remove from list if registered
  if ($ialmark($1,registered)) {
    var %list $gettok($ialmark($me,list).mark,2-,32)
    if (%list == $null) { .ialmark -nr $me list | return }
    else .ialmark -n $me list %list
    return
  }
  whois %nick
}

raw 318:*:{
  var %list $remtok($ialmark($me,list).mark,$2,1,32)
  ; removing them only after a successful end-of-/whois in case of network throttling
  if (%list) ialmark -n $me list %list | else { ialmark -nr $me list }
  if ($ialmark($2,registered)) return
  else {
    ; do nothing if they are not in channel
    if (!$nick(#amigos_eternos,$2)) return
    echo -g #amigos_eternos not reg $2 here is where to put the command to deal with them
    return
    if ($ialmark($2,warn)) { kick #amigos_eternos $2 | return }
    notice $2 please change to a registered nick or identify to this nick
    .timer 1 180 WhoisSnooper $unsafe($2)
    .ialmark -n $2 warn 1
  }
}
raw 307:*:{ .ialmark -n $2 registered 1 | .ialmark -nr $2 warn }
/*
307 maroon othernick :is identified for this nick
330 maroon othernick othernick :is logged in as
318 maroon othernick :End of /WHOIS list.
*/
on *:JOIN:#amigos_eternos:{
  if ($nick == $me) {
    var %i 1 | while ($nick($chan,%i)) { WhoisSnooper $v1 | inc %i }
    return
  }
  if (!$ialmark($nick,registered)) WhoisSnooper $nick
}
on *:NICK:{
  ; ialmarks migrate from oldnick to newnick, so deleting it
  .ialmark -rn $newnick registered | .ialmark -nr $newnick warn
  if ($nick(#amigos_eternos,$newnick)) WhoisSnooper $newnick
}