How do I sort and display event entries when each event can have multiple start times?
One thing you could do is have all screenings be Events, and then have Films be a type which contains the film's data, but use relationships to link to multiple Events which are the film's screening times. You could even have Events have two entry types: Events and Film Screenings (or something similar to this) so they could be displayed differently in the agenda view, and Film Screenings could link back to their parent Film entry.

Here's more information about using relationships and reverse relationships: https://straightupcraft.com/articles/introduction-to-relations-and-reverse-relations-in-craft-cms-with-examples

I'm not sure if this solution would fit your needs, but given my understanding of your issue, I think this is how I'd try to tackle it.