i suggest using resistors instead of transistor voltage divider for a few reasons.
1) Vth mismatch - even for large devices you will get a few mV of Vth mismatch. This will be amplified by the loop gain of the circuit (M1 is in loop, so it will null out, but M2 is outside of loop, so as the loop servos to adjust to M1, M2 will cause more and more error.)
2) In order to get a transistor to act like a resistor, you need to be deep in triode (subthreshold). This means W/L ratios of 0.1 or smaller - for matching of 1% use Total area >100um^2 with 150nm Tox. That means somewhere around 3/33 W/L, but then you need to bias the gates at the proper potential - using them like diodes as shown above will make them act like diodes, not resistors.
3) Tempco - Vth changes with temp, and unless you split the wells (area penalty) you will get temperature drift.
4) As you take current away from the M1/M2 string, the biasing of the gates changes, which is why your ouptut goes up with load. Actually, I can't think of a good way to get a diode to act like a resistor. You'd need to connect the gate of M1 to -Vth and the gate of M2 to -2Vth-Vdsat in order to get them to act like resistors, but you don't have a negative supply..
I would really suggest resistors. If your amp can't drive the resistors directly, use an NMOS follower for easy compensation, or a PMOS common-source for low dropout.