alla fine, non riuscendo a capire perchè il removeChild non funzionava a dovere (se qualcuno mi volesse spiegare... lavorava solo su [1]) ho risolto con questo gran scrivere (ovvero ho inserito gli li e la a dopo, dallo script), richiamando le funzioni next() e previous() a seconda del bisogno.

---------

//creo li, a, testo
var li_1 = document.createElement("li");
var li_2 = document.createElement('li');


var a_1 = document.createElement('a');
var a_2 = document.createElement('a');
var t_prev = document.createTextNode('previous');
var t_next = document.createTextNode('next');

var ul_parent = document.getElementById("ul_pn");

function previous(){
ul_parent.appendChild(li_1);
li_1.setAttribute("id","li_prev");
var li_1_id = document.getElementById("li_prev");
li_1_id.appendChild(a_1);
a_1.setAttribute('id','a_prev');
a_1.setAttribute('href',myMenu[prev_pos]);
var ins_prev = document.getElementById("a_prev");
ins_prev.appendChild(t_prev);
}

function next(){
ul_parent.appendChild(li_2);
li_2.setAttribute("id","li_next");
var li_2_id = document.getElementById("li_next");
li_2_id.appendChild(a_2);
a_2.setAttribute('id','a_next');
a_2.setAttribute('href',myMenu[next_pos]);
var ins_next = document.getElementById("a_next");
ins_next.appendChild(t_next);
}


function fill(){
if (my_pos_n == 0){
next();
}
else if (my_pos_n == menu_last){
previous();
}
else {
previous();
next();
}
}

fill();
-------------------------

di sicuro ho dato una ripassata