To complete the answer my own question, the incorrect display of calendar events was due to outdated timezone information in /opt/zimbra/conf/timezones.ics (thanks to John in Zimbra support for pointing me at this file). This is in ZCO 4.5, however I have now found other forum messages (
link) which indicate other versions also store timezone data but in other ways. If you have had recent changes to your daylight saving rules, watch out for this.