Can someone explain to me the uses of both of these sets of properties, which properties are used by the class and which ones can be accessed from classes that inherit from it?
This is called a "class extension". The properties in the interface (.h) are allowed to be modified by other classes. The properties in the implementation (.m) you should ignore - they are implementation details.
More info on class extensions here.
none of these properties are synthesised so I don't understand why they are being used
Properties don't need to be synthesized any more. If you leave out the @sythnesize statement, it's added for you at compile time. Here's a good blog post on this topic.