You were nesting your IFs (one inside another), which won't work. Also, I don't know if you were just giving an example, but you *do* know that your first IF checks 2 banmasks and bans only one, right? I'd drop the || part and keep them separate. You can do it as shown below, or else you can just do it the way I show in the second part.
on *:UNBAN:#channel:{
if ($banmask == *!*cute@*.undernet.org) || ($banmask == *!*asdfg@*.hsd1.ct.comcast.net) {
mode $chan +b *!*cute@*.undernet.org
}
elseif ($banmask == *!*asdfg@*.hsd1.ct.comcast.net) {
mode $chan +b *!*asdfg@*.hsd1.ct.comcast.net
}
}
To make it easier on yourself, add users to your users list (Alt-R > Users) in this format:
StickyBan:*!*cute@*.undernet.org
StickyBan:*!*asdfg@*.hsd1.ct.comcast.net
You can do this manually, or by using the /auser command: /auser StickyBan *!*cute@*.undernet.org
Once added, you can use this script:
on @StickyBan:unban:#channel: {
mode $chan +b $banmask
}
That will only try to ban the person if the bot running this script is an op. Then, if the banmask matches one found in your users list, it will automatically ban the person again.