sinceramente non credo di aver capito molto (e aver fornito un codice misto server client non aiuta)
però se con "carica il frame base correttamente ma due volte" intendi che lo scrive e poi ricarica
mi sembra sia nel codice, dopo aver scritto il contenuto lanci anche un parent.base.location.reload();
(il cui senso, ad ogni modo, mi sfugge)

cmq ti consiglio di chiudere lo stream di dati verso il documento nel frame base
...
echo 'parent.base.document.write(\'</BODY>\');'."\n";
echo 'parent.base.document.write(\'</HTML>\');'."\n";
echo 'parent.base.document.close();'."\n";
echo '}'."\n";

ciao