I actually did figure this out, but failed to post it. Glad you reminded me.
Basically, you just manually set the parent file, which is how the highlighting is determined.
add_action( 'admin_menu', 'recipress_add_page' );
function recipress_add_page() {
add_menu_page( 'Recipe Box Options', 'Recipe Box', 'edit_others_posts', 'recipress_options', 'recipress_do_page' );
add_submenu_page( 'recipress_options', 'Recipe Box Options', 'Recipe Box Options', 'edit_others_posts', 'recipress_options', 'recipress_do_page');
add_submenu_page( 'recipress_options', 'Ingredients', 'Ingredients', 'edit_others_posts', 'edit-tags.php?taxonomy=ingredient');
add_submenu_page( 'recipress_options', 'Cuisines', 'Cuisines', 'edit_others_posts', 'edit-tags.php?taxonomy=cuisine');
add_submenu_page( 'recipress_options', 'Courses', 'Courses', 'edit_others_posts', 'edit-tags.php?taxonomy=course');
add_submenu_page( 'recipress_options', 'Skill Levels', 'Skill Levels', 'edit_others_posts', 'edit-tags.php?taxonomy=skill_level');
}
// highlight the proper top level menu
function recipe_tax_menu_correction($parent_file) {
global $current_screen;
$taxonomy = $current_screen->taxonomy;
if ($taxonomy == 'ingredient' || $taxonomy == 'cuisine' || $taxonomy == 'course' || $taxonomy == 'skill_level')
$parent_file = 'recipress_options';
return $parent_file;
}
add_action('parent_file', 'recipe_tax_menu_correction');