I finally sat down today to diagnose the problem and discovered I was missing a record from the serendipity_permalinks table which was stopping s9y from being able to look up the id of the category. It was my craft category which is id 7 - all I had to do was run the following against mysql:
insert into serendipity_permalinks set permalink = "category/craft", entry_id=7, type="category";
So now my craft category works fine. If anyone knows how to stop my feeds from showing old articles as new when I edit them but don't update the publication date, I'd be grateful! A bunch of imported posts are still missing their images, would be nice to be able to fix these without polluting my feed.