This turned out to be a database issue. I had duplicate entries in my exp_primary_category table. I think this may have been due to problems I had while upgrading Primary Category.
Using 'Sequel Pro' I connected to DB, and ran the following query to create a new database table containing only unique rows from exp_primary_category:
"create table exp_primary_category2 as select distinct * from exp_primary_category;"
I then renamed 'exp_primary_category' to 'exp_primary_category-old' (just in case anything went wrong with new table) and named my new table 'exp_primary_category'.
Everything back to normal now!
Thanks for the help