The short answer is that VB6 and VB.NET (and consequently C#) are separate but related languages. There are many subtle (Integer being Int32 instead of Int16) and gross differences (graphics, form, and printing engines) between the two platforms. You need to treat this as if you are converting to a completely different platform.
I have found various migration tools not to be worth the effort except for some specific circumstances. For example a database front end using crystal reports.
As for the worth of migration. Only you and your company can make that decisions. Maintain a application long enough on a PC eventually you have to seriously consider it. Mostly to take advantage of a totally new technology (the switch from DOS to Windows for example). My applications was started in 1985 and there has been three major conversion in it's 20 years history (Workstation to DOS, DOS to Windows 3.X, Windows 3.X to 32-bit Windows and object oriented framework).
And We are considering .NET for several reasons. VB.NET is a related language, Generics and Inheritance allow much of our boilerplate code to compressed into a few lines. A richer Graphics API, and so on. Of course there is the total headache of the conversion weighing against everything. However when we switched to a object oriented framework our application became a small EXE linked through COM to several DLLs. We have the luxury of converting and testing piecemeal because of our application structure.
I strong recommend that if you intend to convert that you refactor your application in VB6 to a structure that can be converted and tested in parts. You will be able to use Active DLLs to accomplish this. If you try to do this in one go then you will find that 80% of the project will go quickly and the last 20% will be pure hell. By converting piecemeal you will be left with working software at every step.
The issues is explored more fully here
How to Switch a Large App from VB6 to VB.NET