wp_add_object_terms cant recognize a post ID

With:

wp_add_object_terms( $cpt_dates_post_ID, intval($manifestation_insert_id), 'cpt_dates_postID');

You’re actually saying “Add a cpt_dates_postID term with ID intval($manifestation_insert_id) to the CPT with ID $cpt_dates_post_ID“.

That won’t work, because intval($manifestation_insert_id) is the ID of:

another post (from another CPT, freshly inserted with […]

Not the ID of an existing $cpt_dates_post_ID term entry.

The reason why these 2 work:

wp_add_object_terms( $cpt_dates_post_ID, strval($another_post_id), 'cpt_dates_postID');
wp_add_object_terms( $cpt_dates_post_ID, 'foo', 'cpt_dates_postID');

Is because you’re passing a string as the 2nd parameter. In that case, WordPress will create a new term of type cpt_dates_postID with name strval($another_post_id) or foo.

Off the top of my mind, you could do this instead:

// Create the term entry
$term_ids = wp_insert_term( strval( $another_post_id ), 'cpt_dates_postID' );

// Assign it to your post
wp_add_object_terms( $cpt_dates_post_ID, $term_ids[0], 'cpt_dates_postID');