Okkk... primero no ocupes copy() sino
move_uploaded_file() como lo tenias a el inicio...

también veo un error... el "or die" no bede de ir después de la query (como lo tienes ahora formaría parte de), sino después de la función, de esta forma:
Código PHP:
$algo= mysql_query("SELECT ...") or die (mysql_error());
... para imprimir un elemento de una matríz hazlo de la forma
$algo['indice']... osease con comillas.. eso lo menciono porque no lo haces en esta línea:
Código PHP:
echo "<input type='hidden' value='$row[referencia]'name='Referencia'>";
Ve el código fuente para ver exactamente qué resultado trae esto... igua te recomendaria siempre escapar comillas con barra invertida (no imprimir sencillas como lo tienes):
Código PHP:
echo "<input type=\"algo\"...>";
Igual no veo definida
$Foto que ocupas al final para actualizar....

Espero tengas buenos resultados.