Why would include(locate_template) work but not get_template_part()?
when you use get_template_part, your file navigation.php cannot access variable $navigation_type. but when you do include and locate_template it is simply like including a php file so it can access that variable. It is due to scope of variable in your context.