Your underlying network benches very well, at least going from the XP to the Vista, so for this path at least, you can pretty much forget about tweaking at the network level, and focus on other parts. The reverse direction is not that great, but still a lot higher than your effective throughput, so you can apply the same logic to it and leave it alone, or try to tweak it further. Note however that tweaking the underlying network at this point is unlikely to help much at the overall problem. So you have a good outcome from the iperf result -- don't bother spending more money on NICs or networking gear.
To tweak the Vista networking, you could try the netsh command that I suggested earlier.
There are other OS tweaks possible, and I'll come back to them when I have some more time. For the next steps, I suggest jumping to ATTO to formally test the drive performance simply, and focusing on only one or two paths -- e.g. the path that works best and works worst.
Run ATTO locally and then map a network drive, and run it for that mapped drive over the network to compare local and remote performance. This test would be formally verifying how fast the local drives are in practice, but know that there is often a big gap in local and network performance. The subsequent steps would try to reduce the gap or improve the drives, as warranted.
E.g. pic of ATTO configuration (and test results). This is to show the desired configuration, not the results:
http://i89.photobucket.com/alb...tto-random-network.png
You can save a bit of testing time by dropping the very small and very large access size tests.
ATTO is not the ultimate in drive/network performance testing, and has some test-to-test variability, but it's very easy to use, and gives useful information without involving multiple drives simultaneously.