Hola buen día!
No estoy seguro cuál es la falla, deberías de dejarnos el código fuente del formulario y la imagen.
Viendo tu forma para llevar a cabo el captcha hize uno similar.
Archivo del formulario:
Código HTML:
<?php
session_start();
$_SESSION["numero"]=rand(1000,9999);
?>
<html>
<head></head>
<body>
<form>
<img src="img.php" />
</form>
</body>
</html>
Archivo de la imagen (img.php):
Código PHP:
<?php
session_start();
header("Content-type:image/jpeg");
$img=imagecreate(100,50);
$fondo=imageColorAllocate($img,140,140,140);
$color=imageColorAllocate($img,255,255,255);
imageFill($img,0,0,$fondo);
imageString($img,5,30,10,$_SESSION[numero],$color);
imageJPEG($img);
?>
Si lo pruebas, no se pierde la sesión.
Saludos