yea, there is still a lot missing
however, I worked already several times with MCP4922; it's an ok DAC, but has its nonlinear behaviour which will mess up things much more than the missing 4mV from the reference
Additionally, you'll not get the voltage of the psu down to 0V, even if the LM358 is a single supply opamp; I used IORR MCP6282 and I got down to a Vmin of 25mV - that's not only due to the opamp, also the DAC never reaches 0V, nor 4.096V at fullscale.
I you want a straight voltage scale, say 0-20V in lets say 10mV step, you have to use a bipolar setup and make it possible to calibrate in software - just in hardware alone you'll never get the theoretical possible 0-20,48V in 5mV steps.