Okay, I managed to get it working, but we need four different types of ticket with a global setting for number in stock, rather than a setting for each type. We also want to be able to scan the tickets as people arrive, and it doesn’t look like we can do that with this ticketing system. I will still use The Event Calendar for the events themselves; it looks great and has a nice admin interface. For the ticketing though I have gone with another solution. I will avail of your refund policy for that module, and am happy to keep the main system.
Thanks again for your help, Geoff!