Current steering DACs settle much better with source steering than bang-bang high gate swing.
Looks like the current linearity is your issue? And maybe that is bothered by headroom as you approach the rails, sat to lin transition can't be helped much other than to make the swing range << rail span. Like go between 1/4 and 3/4 span, and then 2X buffer or something with enough open loop gain to drive close to rail if that matters?
But also looks like maybe your switching is RC more than I/C and maybe your current source is poor-linearity or dominated by switch nonlinearity / on resistance.