Pues no sé, tal vez el lugar en donde tienes las líneas de javascript se escriben antes de que la variable tome su valor desde asp y por eso no se escribe. Lo único que se me ocurre es que coloques las líneas javascript debajo de donde sí imprimer el valor desde asp
Archivo subido <%=FileName%> archivo ya está en el servidor.<BR>
<script language="javascript">
opener.document.armar.foto.value = <%=fich.Nombre%>;
close(); // close dialog
</script>
a ver si así lo recoge...