Navigation list not correctly styled on pages with custom template (missing .current-menu-item)

The custom navigation menu uses the global $wp_query object to figure out what page is the current page and should get that class. query_posts() replaces this $wp_query object, so the navigation menu can’t apply the correct classes.

Why do you use a separate template for this page? If you specify no template, it should use the home template (home.php or index.php) with the correct posts in the loop, and you should not need your own query_posts().