I think that you’re problem is with multiple nested queries.
For example:
Main WP Query is run
==> A secondary query is run
====> A third query is run or you get a post from an ACF field
In these cases you cannot use the global $post or the functions setup_postdata ( $post );
and wp_reset_postdata();
The reason for this is the wp_reset_postdata();
always resets the post to the main query and not to the secondary post query. When dealing with post queries nested 3 or more deep you must use some other method of interacting with the post.