se i links delle bandiere che crei ciclando l'array delle lingue funziona per una lingua ma non per le altre allora non mi sembra che il problema sia nel link, piuttosto nella gestione delle altre lingue.
oppure non funziona per nessuna e la lingua che dici funzionare invece è la pagina caricata con la lingua di default o un comportamento non collegato direttamente con le lingue.
lo script mi sembra corretto. controllerei che tutti i links vengano creati correttamente e poi a caricare le pagine con i valori passati manualmente nel codice