Ok. Ahora sí. Últimamente no doy una a derechas... como decía mi abuela.
El tema es sencillo: Gambas pasa siempre, siempre, pero siempre, oiga, los objetos por referencia. Es decir lo que pasa es la dirección de memoria donde reside el objeto en cuestión. No se pueden pasar por valor porque un objeto puede contener infinidad de propiedades y dependencias de otros objetos que es imposible predecir.
Los Arrays son objetos y, gracias a san Benito, tienen la propiedad .Copy() que devuelve una copia del objeto, no una referencia. Por tanto sólo tienes que cambiar la primera línea en éste código:
Código:
Pasada = FMain.Paso.Copy() 'Almacenamos en Pasada una copia del array fMain.Paso '
TextArea1.Text &= "\nCómo queda en el formulario que recibe\n"
TextArea1.Text &= "--------------------------------------\n"
For i = 0 To Pasada.Max
TextArea1.Text &= Pasada[i].Numero & ": " & Pasada[i].Nombre & "\n"
Next
Saludos