This problem arises because the Ubercart Catalog takes over the display of the taxonomy term pages for the Catalog vocabulary, as well as creating its own set of URL aliases for the Catalog terms.
I solved this problem quite simply, by disabling Ubercart's Catalog module and deleting all the aliases for the Catalog terms (as opposed to the Catalog taxonomy terms).
To achieve this, I had to:
- create a new view that mimicked the the Catalog
- ensure that the Catalog term pages used my new view. There are various ways to do this in Drupal including overriding the taxonomy default view, enabling a module like TVI, and Panels. I prefer Panels, so that's the route I took.
- Optional - replace the Catalog block (which is useful as a sidebar menu for your Ubercart store). I did this using Taxonomy Menu and Menu Block.
- Deleting all the aliases for the Catalog and Catalog Taxonomy, and bulk regenerating the Catalog Taxonomy aliases.
In the end, my site looked the same as it did before, but I no longer have the duplicate URL problem, and I'm no longer tied to the rather awkward Catalog module in Ubercart.