Displaying Custom Posts

The problem is that your query is selecting 10 posts per page, but you’re only limiting the view to 5, so you’re losing 5 posts per page. The proper way to change the number of posts per page is to modify the query before the loop:

<?php
$myquery = wp_parse_args($query_string);
$myquery['posts_per_page'] = 5;
query_posts($myquery);
    if (have_posts()) : // etc.