Wouldn't it be easier to convert VB6 to VB.NET and then convert that to C#? The latter conversion is mostly just a find-and-replace operation, as I understand it.
In particular the way that object destruction works is completely different. VB6 using reference counting and .Net languages use a garbage collector.
Systems using reference counting destroy objects and run the destructors as soon as there are no references to the object while those using garbage collectors might only dispose of the objects when memory is low, perhaps never. This means that object lifetime can be very different and that patterns such as RAII require extra work in .Net.
What exactly is more modern about a system that does not have deterministic finalization as part of object scope?