Thank you for the response, Leith.
The issue is that I do have some events that need to run both before and after the file is saved. I have made an amend to your code below to show the kind of things that need to happen both before and after the save routine triggers...
The thing is that these validation checks etc. can only be run at the points of just before and just after the save event.
I have updated my original WorkBook which hopefully will make the issue more visible. I have removed the workbook.close element for the purpose of this query.
To summarise what I see as happening. If the user saves the file using the standard excel save icon, the beforesave event fires and all validations and sheet manipulations work as intended. If the user saves the workbook using the button/macro then the beforesave event again fires and the validations etc. work as intended but object manipulation - worksheet protect/hide etc. - do not work.