Seat reservations for (recurring) events on given days
I don't think you are going to find a solution that does 100% of what you need, I expect there will need to be custom development here.

Sounds like a custom content type (CCK) + ubercart + paypal (with ubercart) will be the most flexible solution. Perhaps read through the reservation module to see how it limits the available supply of tickets (i.e. sold out). 

I would also suggest to remove the graphical part of the event registation, as this looks like it could be tricky, and instead focus on the core functionality of the app, i.e. the registration and payment workflow.

Every problem can be solved in drupal, but some of them are unique, and have their own solution.

If you need this solved ASAP, looks like you may need contractors, or some late nights ;) If you want to attract more quality answers, consider placing a bounty on this