Hola:
Del código que pones no veo donde pueda saltar un "Stack overflow", aunque sería bueno que indicases si tienes algún evento asociado a los Datasets que manejas.
Decirte además que si haces un Append, el Edit anterior es innecesario. Echo de menos el Post para validar la modificación, a ver si al no grabar y hacer el refresh se queda ese dato sin grabar y por eso se repite la operación (ahora mismo no estoy seguro ni lo puedo mirar, si el refresh aborta la edición sin validarla).
Otra consideración, que no tiene que ver con el problema planteado. Todas esas sentencias poniendo Enabled a FALSE sería mejor hacerlas dentro de la unit del Form2, mejor aún desde un procedimiento que recorriera los componentes:
Código:
for i:=0 to ComponentCount - 1 do
if Components[i] is TButton then // Y alguna condición más
TButton(Components[i]).Enabled := FALSE;
Aunque no entiendo, si ese código se ejecuta al crear un Form2, por qué no los deshabilitas en diseño.
A ver si esto te sirve, saludos