I fixed this issue with a dumb idea...
Hey all. I just got a Surface Dock 2 today to use with my SP7 which I have had for a long time. I immediately set it up and my monitor was stuck on 640x480 and the option to change resolution was greyed out. Tried everything, becoming super frustrated and eventually found this thread.
I tried everything suggested and it wouldn't work.
Unbelievably JUST before giving up, I switched my USB-C to HDMI cable that I had been using just fine through the side of surface pro 7 for 2 years straight...with a brand new [exactly the same] cable and it suddenly worked!
Because the initial cable worked just fine through the side of the SP7, it didn't even seem in the realms of possibility that it would have an issue with the dock...it makes no sense. But it all works just fine now.
I am yet to try with 2 monitors though. I am waiting on the second one to be delivered....wish me luck,