We implemented something similar. We made it all Currency and Language-based:
-We have multiple catalogs sharing most of the products with possibility to have country-specific products (It's all relationships anyway)
-When you navigate on the site, we resolve your language based on your GeoIp (And store it in a cookie)
-You language maps to a Catalog Configuration in Sitecore with a link to the corresponding catalog.
-Each product has different pricing per currency. For example if you're on Australia Catalog you'd see the AUD price...
Hope that helps.