Non ho visto errori nel JS, per cui sospetto qualche altro problema.

Cmunque non serve ridefinire la matrice, ti basta settare la variabile pos:
codice:
function setPercosoDue()
{
  pos = 4
  cambia()
}
Addirittura potresti eliminare la funzione, e scrivere:
percorso 2

Nota che il nome del frame "TOP" potrebbe andare in conflitto con il nome top (il frame piu` esterno nella finestra) in qualche browser che non rispetta la norma del case-sensitive, per cui ti consiglio di cambiarlo.


Mi viene un dubbio:
Quando clicchi sul bottone (o link) del percorso 2, hai gia` un timeout che scorre?
In tal caso attivi un nuovo timeout, per cui i timeout diventano due, che si intersecano.

Per evitare tale problema, devi definire una variabile globale, che usi come riferimento del timer:

var pos=0;
var pagine = new Array('pag01.htm'.....)
var timer;
....
timer = setTimeout(...);

In tal caso il timer e` sempre lo stesso, e viene ridefinito ad ogni chiamata.