you need to get the ID from wp_insert_post
and make sure you exit
or die
so:
$pid = wp_insert_post($new_post);
wp_redirect( get_permalink( $pid );
die();
As for the second part you can use the WordPress Template Hierarchy and simply name each one of your custom post type designs as single-{post_type}.php
for example if your post type is named event then name that file single-event.php
and WordPress will know to use that file for displaying all posts of event type.