You could modify the main query on your static front page to switch to different pages depending on the logged in user by doing something like this:
add_action('pre_get_posts', function($query) {
// if not admin, and if it is the main query, and the page id matches the page id set to be static front page...
if ( ! is_admin() && $query->is_main_query() && $query->get('page_id') == get_option('page_on_front') ) {
// ...Check if user is logged in
if ( is_user_logged_in() ) {
// ...Maybe create a handy array where user ids are keys, and matching page ids are the values
$users_pages_ids_array = [
3 => 23,
5 => 25,
7 => 31
];
// store the currently logged in users id
$current_user_id = get_current_user_id();
// load the page that is matched with user
$query->set('page_id', $users_pages_ids_array[$current_user_id]);
}
}
});
Then the static front page setting is left alone outside of your customization’s.