I could be incorrect but since the do nothing project worked the original project has components and/or controls that are causing issues, most likely from remnants left over from the VB6 project.
In my experience porting applications from VB6 to .NET is to not port but instead rewrite from scratch as there can be things left over from VB6 that will raise their ugly selves down the road just when you think all is good.
So no matter the size of the original project your options are
- Figure out the underlying problem by implementing an unhandled exception handler and logging results to a log file. No guarantees this will work especially if offending code is not throwing an exception. Not throwing an exception may be caused by code in sub main or in the main form's load event. It's much better to not use form load event (a rather long story) but instead use form shown event.
- Rewrite the application by creating a new project(s) without anything from VB6, make sure to use
Option Strict On
andOption Infer On
unless there a really valid reason not to.
Reference to a simple unhandled exception code sample.
Usually when giving advise like this I'm asked if there is an easier way, sorry there is not an easier way.