> *Is any of my ideas not leading me in the right direction?*

This is how the PCB tracking should be. I've also added questions about some components: -

[![enter image description here][1]][1]

If you don't have the 0 volts rails nailed down properly on this type of design you will get drift with temperature.

You should also ensure that the 7 volt supply isn't drooping too much either.

 - Op-amp is a good choice (on a 5 volt rail)
 - MOSFET is a good choice
 - Sense resistor is unknown and quite possibly a problem
 - DAC is an unknown and possibly a problem


----------
**Following an edit by the OP**

The DAC choice is very poor for this type of accurate application. This is what it says in the [data sheet](https://gr.mouser.com/datasheet/2/268/MCP4725_Data_Sheet_20002039E-2907543.pdf) about its internal reference: -

> The DAC reference is driven from VDD directly

In other words, if the 5 volt Vcc is drifting then so is the DAC output. This now calls into question what provides the 5 volt DC power for the DAC and op-amp.


  [1]: https://i.sstatic.net/gnuea.png