Shortcode To Display Post Custom Field Value in Post Title, Post Content

the_title filter takes two parameters, one of them is the ID of the post for which it was called. Something like that should work.

add_filter( 'the_title', 'se385007_title_filter', 20, 2 );
function se385007_title_filter( $title, $post_id ) 
{
    $new_title = str_replace( "[geo_name]", "[geo_name post_id=$post_id]", $title );
    return do_shortcode( $new_title );
)