What is the return value for the image field set to?
looking further down your code at the image field in the row loop you are doing
<img src="<?php the_sub_field('gallery_photo');
but for the first image you’re using
$image = wp_get_attachment_image_src( $first_row_image, 'full' );
Try
$rows = get_field('gallery' ); // get all the rows
$first_row = $rows[0]; // get the first row
?>
<img src="<?php $first_row['gallery_photo' ]; ?>" alt="why isn't this working?" />