Yes, you are creating an infinite loop because this $other_cpt_id = get_field( 'post_selection' );
causes your filter to be called every time your filter runs.
At the beginning of your filter add
remove_filter( 'acf/load_value', 'load_my_values', 10, 3 );
and then at the end of your filter re-add
add_filter( 'acf/load_value', 'load_my_values', 10, 3 );