Actually, I think the problem is that
<?php $posts = the_sub_field('workshop_speaker'); if( $posts ): ?>
should use “get_sub_field” instead, like so:
<?php $posts = get_sub_field('workshop_speaker'); if( $posts ): ?>
I was having a similar problem, and found that solution here which worked for me.
Hope that helps!