Despues de varias hora revisando las formulas matematicas que ecfisa me ha facilitado mediante la pagina web, creo que esta es la funcion para realizar la conversion.
Lo he probado y parece que funciona con bastante presicion. Si alguien detecta algun error le agradeceria que lo mencionara para poder corregirlo.
Código Delphi
[-]function TForm1.utmtogeo(UtmX, UtmY, zona:integer): string;
var
fi, ni, mc, se, sd, a, a1, a2, j2, j4, j6, alfa, beta, ganma, bfi, b, zeta, xi, eta, sxi, delta, tau, sexas, radiantes:double;
begin
fi:= UtmY / (6366197.724*0.9996);
ni:= (6399593.626/Power((1+0.006739497*sqr(cos(fi))), 0.5))*0.9996;
mc:= (6*zona-183);
se:= UtmY;
a:= (UtmX-500000)/ni;
a1:= sin(2*fi);
a2:= a1*Power((COS(fi)), 2);
j2:= fi+(a1/2);
j4:= (3*j2+a2)/4;
j6:= (5*j4+a2*Power((COS(fi)),2))/3;
alfa:= (3/4)*0.006739497;
beta:= (5/3)*Power(alfa, 2);
ganma:= (35/27)*Power(alfa, 3);
bfi:= 0.9996*6399593.626*(fi-(alfa*j2)+(beta*j4)-(ganma*j6));
b:= (se-bfi)/ni;
zeta:= ((0.006739497*Power(a,2))/2)*Power(COS(fi),2);
xi:= a*(1-(zeta/3));
eta:= b*(1-zeta)+fi;
sxi:= (EXP(xi)-EXP(-xi))/2;
delta:= arcTAN(sxi/COS(eta));
sd:= +(delta/PI)*180+mc;
tau:= ARCTAN(COS(delta)*TAN(eta));
radiantes:= fi+(1+0.006739497*Power(COS(fi),2)-(3/2)*0.006739497*sin(fi)*COS(fi)*(tau-fi))*(tau-fi);
sexas:= +(radiantes/PI)*180;
utmtogeo:= floattostr(sexas)+'&'+floattostr(sd);
end;