Im pretty sure its becuase those members are not voiced or op at the moment they join the channel
This might work
on @*:JOIN:#:{
if ((*@85.* iswm $address) || (*@68.47.* iswm $address) || (*@193.* iswm $address)) {
if ((*@85.86.166.* !iswm $address) && (*@68.47.193.* !iswm $address) && (*@68.47.147.* !iswm $address) && (*@193.229.* !iswm $address)) {
timer 1 6 if (( $nick isop $chan ) || ( $nick isvoice $chan )) $({,) halt $(},) $(|,) shun $address 180 $(|,) ban -u180 $chan $address($nick, 14) $(|,) .notice $nick You aren't welcome!
}
}
}
Simply waits 6 seconds for them to op or voice, then checks if they are, change the 6 to what ever is right for your channel. (if it works)
* the $({,) etc are to make multiple commands insdie a timer