How can I allow a participant to enrol for an event more than once?
Do you already have multiple roles supported for your events?, i.e via an extension like: https://civicrm.org/extensions/event-registration-based-participant-roles

A solution that would not necessarily be graceful would be to create multiple events (one for each role) and use the form to hit the different events based on the role.