Admin menu links just refresh the page

Sounds to me like the hooked function that calls the page file itself is the same for all five uses of add_submenu_page(). Hard to tell without the code.

<?php add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function ); ?>

The $function variable should be different for all five uses meaning you need another four function or class methods. You must have one already, just duplicate it and point the include to other page files or change the functions content if your not including files.

WordPress Codex: add_submenu_page()

Update
Have you tried without using $this->page_hooks[‘link5’] and simplifying things further? I don’t ever remember using add_submenu_page() like that. I do use it within a loop though as my menu structure/data is in an array in my plugins…

add_submenu_page($n, $c2p_mpt_arr[$k]['title'], $c2p_mpt_arr[$k]['menu'], $required_capability, $c2p_mpt_arr[$k]['slug'],  array($this,'page_' . $k) );