I can't understand why the clearall doesnt work.Maybe you need to add the -a switch, not sure, but try it! You can use timers to have a small pause between joins
on *:NOTICE:*Password accepted*:*:{
if ($nick == Nickserv && $network == mynetwork) {
join #room1
.timer 1 2 join #room2
.timer 1 4 join #room3
.timer 1 6 .msg botname invite keyword
.clearall -a
}
this will wait 2 seconds! to change the time to what you want you simply change 1 2 4 6 to whatever time you want
Check the help files for more info about the timers, they are one of the most usefull!