Hi there, when I try undervolting my card (1660ti gaming x) the curve changes on its own for no reason, and while testing the clock speed doesnt actually reach the clock speed that I set on MSI afterburner.
Firstly, make sure when you're setting your undervolt (or overclock) that you're actually running a 3D application that's representative of the sort of things you're going to be doing with you GPU (i.e. running a demanding game) - if you set the curve whilst nothing's running you'll often get different results to what you expected.
Secondly, Afterburner can't change the behaviour of a GPU - only the power/frequency curve - your GPU will still be trying to clock higher if it thinks it has headroom and will still clock lower if it's hitting a power or thermal limit. It can take quite a bit of futzing around to get your desired curve to stick and even then there's no guarantee it'll look exactly the same the next time you apply it.
The method I use is to (whilst running a game etc.) shift-drag on the last point to the right of the curve to drop it down to my desired max frequency. Then, find the voltage that matches your desired undervolt and drag it up to match that frequency. Hit apply and you should get a straight-ish line.