How do I add a custom sublevel menu specified in one directory to a custom top level menu specified in another directory?

It sounds as if you’re having problems adding submenus from a plugin to a parent item registered in another plugin.

Add priorities to your admin_menu actions to make sure the parent(top level) item exists at the point your additional plugins attempt to add items to that menu..

Add top level

add_action('admin_menu', 'main_menu', 100 );

Add sub items

add_action('admin_menu', 'register_submenu', 105 );

Default priority is 10, so your two callbacks were possibly executing in the wrong order.

Let me know if that helps.