Essentially, all the code below does is output all the "Test Field" values for each image, inside their own hidden containers. Then, when someone mouses over an image, the script un-hides the relevant custom field container. Additionally, it will hide the custom field container on mouse out.
You can put this piece of code anywhere outside of the main image loop inside the gallery display template (I put it at the very top while testing).
<?php foreach ( $images as $image ) : ?>
<div id="nggv-custom-field-<?php echo $image->pid ?>" class="hidden-custom-field" style="display:none;">
<?php echo $image->ngg_custom_fields["Test Field"]; ?>
<?php endforeach; ?>
var pid = jQuery(this).attr('id').substr(10); //get the image db id from the dom element id
jQuery('#nggv-custom-field-'+pid).show(); //show the custom field container
jQuery('.hidden-custom-field').hide(); //hide all custom field containers