Hi Simon,
Setting up a ccTLD is definitely the best approach but it seems like it is anot a solution. How about creating subdomains or subdirectories for each location and use rel="alternate" hreflang="x" tag and Google Webmaster Tool to Geo-target? The tag and the tool will tell Search Engines that these content are for people in these location in these languages. It should avoid duplicate content and you don't have to use 302 redirect.
Do you think that will be a possible solution for you?