When you use ZGELSS to sovle this problem, you're using the truncated singular value decomposition to regularize this extremely ill-conditioned problem. it's important to understand that this library routine is not attempting to find a least squares solution to $Ax=b$, but rather it is attempting to balance finding a solution that minimizes $\| x \|$ against minimizing $\| Ax-b \|$.
Note that the parameter RCOND passed to ZGELSS can be used to specify which singular values should be included and excluded from the computation of the solution. Any singular value less than RCOND*S(1) (S(1) is the largest singular value) will be ignored. You haven't told us how you've set the RCOND parameter in ZGELSS, and we no nothing about the noise level of the coefficients in your $A$ matrix or in the right hand side $b$, so it's hard to say whether you've used an appropriate amount of regularization.
You do seem to be happy with the regularized solutions that you're getting with ZGELSS, so it appears that the regularization effected by the truncated SVD method (which finds a minimum $\| x \|$ solution among the least squares solutions that
minimize $\| Ax-b \|$ over the space of solutions spanned by the singular vectors associated with the singular values larger than RCOND*S(1)) is satisfactory to you.
Your question could be reformulated as "How can I efficiently obtained regularized least squares solutions to this large, sparse, and very ill-conditioned linear least squares problem?"
My recommendation would be to use an iterative method (such as CGLS or LSQR) to minimize the explicitly regularized least squares problem
$\min \| Ax-b \|^{2} + \alpha^{2} \| x \|^{2}$
where the regularization parameter $\alpha$ is adjusted so that the damped least squares problem is well conditioned and so that you're happy with the resulting regularized solutions.
__float128
with GCC, supported by a few packages including PETSc). $\endgroup$