I would recommend to obtain VB top and CB bottom energy values from the output file. The occupation numbers are listed if 'verbose' mode is active. In any output mode the energies should be printed out for every k-point.
For example:
End of self-consistent calculation
k = 0.0000 0.0000 0.0000 ( 51347 PWs) bands (ev):
-41.2118 -41.2117 -41.2117 -41.2117 -41.2117 -41.2117 -41.2116 -41.2116
...
3.0299 3.0299 3.1717 3.1717 3.4488 3.4488 3.9082 3.9082
5.5990 5.5990 6.3247 6.3247 7.0692 7.0692 7.2538 7.2538
7.4689 7.4689 7.6844 7.6844 9.0266 9.0266 9.2530 9.2530
9.4975 9.4975 9.8699 9.8699
In this example Fermi energy is 5.125 eV, so that VB top is 3.908 eV and CB bottom is 5.599 eV. Note, these values are for Gamma point k = 0,0,0. You may need to consider many k-points to obtain the global values.
Note 1. The exact energy values depend from many factors, the most important is the used pseudopotentials (pps). So that you may have them both positive or negative - there is no error. Instead of the absolute values the residuals (like band gap CB-VB) should be compared when different software codes / pps are used.
Note 2. I would not recommend to use the Fermi level value from nscf calculation in QE, it looks strange. The scf one should be more reasonable.