Es normal que return dentro de un while obliga a que al primer recorrido devuelva un resultado, sin hacer lo demás.
Si quieres devolver todo, deberás acumular los resultados en un arreglo dentro del while para hacer el return al final:
Código PHP:
Ver original $ret[]=$reg[ $item ];//acumulas las filas en el arreglo $ret
return $ret; //al final devuelves el arreglo con todo