TAdvstringgird adding column issue with state

Using Tokyo 

Using TAdvstringgrid

This is an old issue i've fought and not quite wrapped my head around it.

I use the built in save grid state and load grid state.

Works great, if nothing changes with the grid design.

If I need to add new columns this is where things get a bit hairy.

Gets worse when gotta add columns, but customers want the new ones NOT at the very end.
Made even more complicated when columns can be reordered.
And moving them to the very end is apparently not an option.
Resetting order to a factory setting, not an option.

The save/load state is pretty simple design. # of columns, widths, order, visible.

Has anyone tackled this issue?

Getting beat up on this feature and I have yet to figure out a full proof way of doing this.

Not sure this is really even doable with the stipulations.  If its not, is there some
kind of reason I could give besides "can not be done because......."