Custom WP_Query not working correctly

Use wp_reset_query() to restore the original query. This also calls wp_reset_postdata, so you can just replace that.