Eugh - It was the custom form that was causing the problem for us. So obvious, but I just never thought to test it.
Our custom form is used for appointments (it's used to record mileage & expenses) & the calendar is exported to a database once per month for reporting purposes.
I'll be able to do the same thing via the standard ipm.appointment form & its 'Description field'. The database can do a bit of parsing to separate out the required details from the Description field.
Many thanks for the help. I'll go lie down now... maybe have a bit of a cry... then break open a celebratory beer.
