Pues funciona perfecto... pero hay que colocar el código de javascript justo después del input, y no en la cabecera de la página, que era lo que yo hice, y por eso no me funcionaba cuando puse en práctica en la web el código que me pasaste.
Así sí:
Código:
<fieldset>
<input type="hidden" id="reference" name="reference" />
<script type='text/javascript'>
var ref = document.getElementById('reference').value = document.getElementsByTagName('h2')[0].innerHTML;
</script>
</fieldset>
</form>
</div>
</div> <!-- fin DIV contacto -->