controlling a 3 way solenoid valve

Solenoids are like relays, look to see how you control them here:-

http://www.thebox.myzen.co.uk/Workshop/Motors_1.html

However,I would guess that there might be a significant voltage drop across the NPN/diode so the solenoid would not get 5V?

No.

I could switch them simultaneously using the bit register:

You could also fry the outputs that way if they didn't switch all at the same time. Even using direct port output it would not switch simultaneously. There is no guarantee that outputs would share the current.