Wire.beginTransmission(0x1D); //address of DAC
Wire.write(0x01); //address of command byte register/load code and load to DAC
Wire.write(value); //upper 8-bit data for DAC
Wire.write(value); //lower 8-bit data for DAC
Wire.endTransmission(); //transfer all the above queued data
Something is not in the right way in the above instructions.
(a) value is a 16-bit unsigned number (0x0000 - 0xFFFF).
(b) Upper 8-bit of value should enter into the upper part of the DAC. Lower 8-bit of value should enter into lower 8-bit of DAC. So, the instructions should be:
Wire.beginTransmission(0x1D); //address of DAC
Wire.write(0x01); //address of command byte register/load code and load to DAC
Wire.write(highByte(value)); /upper 8-bit data for DAC
Wire.write(lowByte(value)); //lower 8-bit data for DAC
Wire.endTransmission(); //transfer all the above queued data
The above correction should also solve your resolution problem. The Full Scale of DAC = 5V. It sweeps over 65536 steps. If you feed 0x0001 into DAC, you will get 5/65536 = 0.0000763V at the OUT-pin of the DAC.