Ah.Ahora entiendo lo que quieres hacer

.
El código que tienes hasta ahora, va bien para resolver sólo 1 post del formulario.Si ese post da más de 40 lineas, creará otro fichero.
Pero no va a funcionar bien para ir añadiendo (ni siquiera sabía que eso era lo que querias hacer).
Ir añadiendo, significa :
- 1) Encontrar cuál es el último fichero escrito, si existe.
- 2) Encontrar cuántas líneas hay escritas en ese fichero.
Para 1), lo más sencillo es directamente ir mirando si existen los ficheros de datos o no.Con el código que tienes, los ficheros de datos tienen la forma miFichero1.txt, miFichero2.txt...etc.
Con un bucle, y file_exists(), sabes cual es el ultimo.
Para 2), con file() , y teniendo en cuenta que no tienes que contar la cabecera, sabrás cuántas filas se han escrito ya ese fichero.
Para hacer el mínimo de modificaciones a lo que ya tienes, $counter lo tienes que inicializar a 40*(numero de ficheros completos) + (numero de filas encontradas en el ultimo fichero).Además, tienes que hacer $currentFile=fopen(....) del ultimo fichero, en modo "a".
Todo eso debe ocurrir antes de entrar en el bucle.Básicamente, todo lo anterior sirve para devolver las variables $counter y $currentFile al estado en el que se encontraban la última vez que se llamó.