Something is not right here...
Gigabit uses all 4 pairs of wires. IF you connect using a standard pin out for a crossover cable you will only use two pair. If you only see 20MB it sounds like they are not set to full duplex. All things beign equal you should get about 40MB over the 2 pairs.
Standard 568-B pin 568-A pin out for a crossover cable only use cables 1 and 3 2 and 6 with wires 4,5,7 and 8 the same on both ends. This won't work for gigabit. Since you don't mention you made the cable or talk about pin outs, it is difficult to say.
Are you using the crossover cable connected to the switch when you connect both machines to the gigabit switch up or are you using two different straight through cables? Have you looked at the pin outs for both cables?
The steps you describe above don't add up. If both machines show a connection established at gigabit speeds connected to the switch there could be other limiting factors. Gigabit speeds require gigabit processors. Messing with the default advanced settings of the network adapter will cause issues as well.
I think the missing piece may be the cables themselves and a misconfiguration of the tcp/ip settings for the cards.