I actually solved this just before going away for the weekend. The issue was that I was referencing the class directly (data-sly-use.headjava="Head") and instead had to include the package (data-sly-use.headjava="apps.site.components.page2017.global.head.Head").
I am unsure at this point as to why I need this reference on Publisher and not on Author, do you know what would be missing on the Publisher to cause this?
Also, as I said in my original question "Is there any way that I can get a bit more information i.e. a Publisher error log?". I need this in order to both help me narrow down the cause of issues and provide a stacktrace if requested.
EDIT 1: I now have access to the error logs, so my question about this has been solved.