Tras comentar casi todo mi código de todas las escenas, me he dado cuenta de que lo que falla es que para cambiar de una escena a otra, yo lo que hacía era borrar todas las instancias de la anterior y pasar a la siguiente de este modo:
Código:
while (numChildren > 0)
removeChildAt(0);
gotoAndStop(2);
Y eso, no entiendo muy bien por qué, borraba hasta las cosas que todavía no había mostrado en la escena siguiente. Y lo que más me intriga es que he estado usando eso tal cual desde el principio, y sólo hasta ahora ha empezado a dar problemas :S
De momento lo he solucionado cambiándolo por un método menos general, es decir, borrando únicamente las instancias que tenía almacenadas en distintos arrays mediante un bucle for para cada array, y funciona, pero me gustaría saber por qué eso fallaba