Could your system just gather the atendee’s email and send them a token which they would have to register themselves?
This would speed up the purchase process and get them the consent directly.
Another way I can think of is if you gather this info as a collective. This way, instead of tying the DOB, Dietary Requirements and other data to a specific individual that data would be tied to the group. You would still be able to gather the same data to brief the catering company etc and, for marketing purposes, I guess you can still send them an email with info about the event and ask them to opt-in for further communication.
P.S.: This isn’t legal advice, just some ideas.