ti faccio un esempio, vedi tu come adattarlo al tuo caso

il concetto e' questo: la figlia deve avere un name e la principale deve fare comunque un window.open (omettendo l' url) verso la finestra con questo name per stabilire la relazione con la figlia
se la finestra non esisteva prima (e hai vari modi per verificarlo, io qui la faccio un po' sporca e confido ciecamente nel fatto che se non e' stata aperta prima il suo indirizzo sara' about:blank) ne setto l' indirizzo

principale.htm
codice:
function apriPopupPersistente(indirizzo){
	var tuaPop=window.open('','popupPersistente','width=200,height=200');
	if(tuaPop.location.href=='about:blank') {tuaPop.location.href=indirizzo;}
	else {alert('aperta a quella pagina da prima');tuaPop.focus();}
}
...
apriPopupPersistente
popupPersistente.htm
codice:
window.name="popupPersistente";
window.onload=function(){alert('questo alert non scatta piu di una volta fino alla chiusura della popup, non importa chi tenti di dialogare con essa')}
ciao

P.s. lo spazio tra about e :blank viene introdotto dal forum