Hello. You can use custom fields to accomplish this. The user registers for an event, then with a custom field, they select the desired sub-event options. Each custom field option has a limit so it can only be selected X number of times... so the event has a capacity, and each sub-event option has a capacity.
You can build and send an email to all registrants of a select event, but this is done manually.
If you have users login to the site prior to registration, then the record will be assigned to their joomla user account. Then they can use our frontend user panel which allows them to cancel, edit or make additional payments to their records... all based on what options you setup for this. So yes, users could modify the custom field selections they have made.