I think this can be easily achieved with an OOTB functionality. In each location page ( detail_loc.htmpl) there is a tab called Auto Assignment. In Auto assignment tab you can update groups. So whenever the location will be selected during case creation, group will be auto populated.
In your original post you said, customer will select location while submitting tickets manually, so the above process will be independent of location field available on contact details.
Thanks
ArunavaS