Hi,
you should find the path where the high voltage ESD pulse current flows.
Maybe you see marking caused by a spark.
* avoid the spark by isolation
* or use an overvoltage protection circuit that keeps that current away from your microcontroller. This can be a dedicated capacitor or a MOV or similar.
For sure you may improve the microcontroller PCB layout. Using solid GND plane, using HF filters, route your signals as far away as possible fromthe ESD path, even a wtchdog (hardware, software) may cause the circuit to pass the ESD test. When it "hangs" it will be resetted and it will start automatically. A reboot is allowed (but not nice), as long as the total function of the application is guaranteed.
Klaus