Non lo ho affatto testato, comunque scorrendo il tuo codice per una ispezione diciamo "a prima vista", la riga:
codice:
arrivo.options[i]=sel[i]  //e qui si blocca
è errata a prescindere dal fatto che il loop entri in un ciclo infinito o meno (non è chairo infatti se "qui si blocca" intende dire che il ciclo non termina mai o non viene eseguito).

arrivo.options[i] devi poi specificare COSA della option di quella select deve ricevere quel valore: il text della option
arrivo.options[i].text=sel[i];
Il value del tag option
arrivo.options[i].value=sel[i];
o entrambi?
arrivo.options[i].text=arrivo.options[i].value=sel[i];

Intanto chiarisci/correggi questo, poi vediamo.