When determining whether the user has access to previous checkout pages this module uses a simple 'every page before this page is allowed' algorithm rather than the more complex algorithm used in commerce_checkout_page_access which checks that there is a 'previous' or 'next' button chain between this page and the requested page. A patch to change
if ($visited){
to
if (commerce_checkout_access_page($page_id, $order)){
in theme_commerce_checkout_progress_list would use the commerce function. At the moment I override the theme function to get this functionality as I use a complex checkout process.