Hi,
for such a tiny gap the $lastdiag should indeed solve the problem with negative gaps, but you could also consider to increase the gridsize for DFT and/or SCF and density convergence - there are a LOT of unoccupied orbitals with more or less the same energy as the HOMO...
Please note that the 'negative' gap for such small differences is not really a problem but just a numerical artifact - the total energy is correct. It is, however, a hint for a possible multi-reference case. And for TDDFT it is awkward since escf and egrad will complain in such cases.
The really puzzling thing is the huge gap if you use $lastdiag. It looks like an output error - could be that the orbital shift has not been undone in your case. What is the entry of the $scforbitalshift keyword in the control file?
Also, how does your CRENBS ECP basis set look like? I have just checked it in EMSL basis set library and it seems that the basis set is not correct there - just a dummy set for the ECPs and not an optimized one... So if you took CRENBS from there, the results will be very strange anyway.
Regards,
Uwe