Sounds like you've done your homework.
I don't know how much harder wifi roaming is in the current version of ubuntu Linux but I know that the next version Feisty (April 2007) is going to include better wifi managment. It is supposed to automatically switch between profiles depending on where you are at.
GPS seems to be the major Linux stopper at this point but even that can be solved via win32 emulators.
Keep us updated on your progress.