You're describing my history, with two differences: I didn't let that much time pass before I made the change, and I never even looked at VB.NET, I went straight to C#, thinking that a different language would help me break with VB6 nastier habits. I was wrong. Just like you, I was writing good procedural (VB6) code in C#: I didn't understand, so I didn't use OOP, lambdas etc. My advice is that first and foremost, train yourself in OOP thinking. Learn patterns, and apply them. When you have a good understanding of these basic foundations of programming that we could happily ignore in VB6, then you can learn C#, WPF, ASP.NET or whatever else you choose.
C
CMPerez
@CMPerez