SoftwareSerial resets arduino pro mini

Have a look at the examples in Serial Input Basics - simple reliable ways to receive data. Notice how they don't rely on delay().

It would be a big help if you could describe how your program is supposed to work - i.e. a walk-through of the code.

The data you send in ACK and NAK looks like it could be figured out while you are writing the program and included as a pre-defined byte array

...R