Form action doesn’t work if slug isn’t same as custom post title

When you register a post type, WordPress creates a query var for that post type which it uses in the process of parsing incoming requests and converting them into queries. In your case the query var is event:

register_post_type( 'event', $args );

Your form then uses a POST var of the same name:

$event = $_POST['event'];

So when you submit this form, WordPress sees the event post var and thinks you are trying to query an event post with slug that matches that value, which is resulting in a 404.

The answer is to always prefix form vars with a unique string so they don’t clash with built-in or other plugin vars.