Buenas, no sé si lo habrás hecho ya, pero una prueba muy simple para descartar un error sería cambiar esta línea:
Código PHP:
$codigo=$_SESSION["cdg"];
por
Código PHP:
$codigo="prueba";
Parece una tontería, pero hace poco tuve que hacer algo con gd y no conseguía que el IE mostrara la imagen; luego de vaaaarias horas de probar mil cosas, descubrí que el problema estaba en que el IE no me reconocía el content-type
"image/jpg" ( sólo entiende "image/jpeg", con la "e").
No sé si ya lo habrás probado, pero podrías si no también comentar la línea del header y la última (ImagePng($imagen);), que imprime la imágen, y hacer un echo de $_SESSION['cdg'] para confirmar si efectivamente el problema está en el manejo de sesiones. (Digo, para "atacar" un frente a la vez)
Suerte
Califa