Data won’t save if metabox within conditional in admin. What am I missing?

You have to use $_REQUEST instead of $_GET, because when an user saves a post the POST request will be send to the server. It means that there is no $_GET['post'] argument and your meta boxes won’t be registered. And if they are not registered, then nothing will be saved.

// Only shows for the admin front-page assigned page.
$front_page_id = get_option( 'page_on_front' );
$post_id = (empty($_REQUEST['post'])) ? NULL : $_REQUEST['post'];

if (is_admin() && $front_page_id == $post_id) {
    ........
}