Allora,ho fatto un po' di debugging e ho sistemato un po' il codice e usando lo split.

codice:
        public static void assignCitySettings()
        {

            GamesModules.MainGame mg = new GamesModules.MainGame();

            for (int i = 0; i < AllData.Count; i++)
            {
                string s = AllData[i];                  // AllData corrisponde ai dati da leggere
                string[] split = s.Split('=');

                for (int c = 0; c < mg.gameport.Controls.Count; c++)   // Gameport è il Panel
                {

                    if (mg.gameport.Controls[c] is PictureBox)
                    {

                        Console.WriteLine(mg.gameport.Controls[c].Name);

                        if (split[0] == "NAME")
                        {

                            mg.gameport.Controls[c].Name = split[1];

                        }

                    }
                    
                }

            }

        }
Sulla console mi escono scritti correttamente tutti i nomi ma quando la funzione termina tutto torna come prima. (difatti una volta finito il caricamento se su un altro pulsante metto un MessageBox che mi visualizza il nome di ogni PictureBox nel gameport escono scritti i nomi originali (PictureBox1,2 e ecc)