working now thanks.
Using ACF functions within get_posts (and maybe all functions?) means there has to be an explicit post ID passed to the ACF functions, so above works if $post->ID added
eg
if(get_field('values_and_outcomes', $post->ID))
while(has_sub_field('values_and_outcomes', $post->ID))
get_sub_field($fieldname, $post->ID)
etc