Are your VB code updating a text box or similar control with lots of data?
I had a problem with a program that worked perfectly for shorter runs but when running for say over 10 hours the textbox (displaying data recieved from Arduino) had so much text in it that it more or less made Windows stop working.
On the next crash you should start the task manager on your Windows machine and see if excessive memory or CPU usage is present.