Setting a new users profile fields based on a form
Do you think you could just make the select dropdown and postcode input box parts of the user_form? Looks like you've got the functionality working already, so it would be a matter of a simple module implementing the following hook:


hook_user(register) to alter the registration form and add your custom fields. You'll want to use a profile or profile_taxonomy functionality to insert the form element
hook_user(validate) to validate the user input (incorrect postcode etc.)
hook_user(submit) to convert the postcode to region and to save that information in the user profile