Wouldn’t use global $post and $post->ID within a loop inside of a block. If you change it to:
<?php $price = get_field('print_opp_price',get_the_ID()); ?>
Does it work?
Thinking $post->ID is pulling the ID of the page/post this block is on and looking for the field there vs. the post in the loop.