First, I assume by pass through you mean you are printing from a Linux app, through your serial (ICE-TEN) connection, and printing to a printer attached to your Windows machine.
I'm not sure what's happening. For pass through printing, the Linux app sends a specific emulation code, that tells ICE TEN to direct subsequent data to the printer. Since the first print job works, this part seems to be working. When the app finishes sending the print job, it sends a different code to tell ICE TEN to stop redirecting to the printer. If you get the screen or menu from the app after the print job, it means that this part also works.
This process should repeat the same for every print job. I can't think of anything that would make it stop working the second time around. It does not appear to be a problem with ICE TEN sending the job to the printer; otherwise you would get nothing to the screen (or the printer). The fact that you are getting the job on the screen means the app for some reason didn't send the printer start code the second time around, or ICE TEN didn't receive the code.
Presumably, it works again if you quit ICETEN and restart it?
JimN