Setting a Default ‘Theme Location’ When Creating a Menu

You need to first collect the menu locations, then set the primary menu location with the menu id.

// Set the menu to primary menu location
$locations = get_theme_mod( 'nav_menu_locations' );
$locations['primary'] = $primary_nav_menu_id;
set_theme_mod ( 'nav_menu_locations', $locations );

Here I assume ‘primary’ is theme location referring to ‘Primary Navigation’.