Hi Ian,
Thank you for your interest in Syncfusion products.
Here is the code and minimal sample to move the columns of the GridGroupingControl programatically.
this.gridGroupingControl1.TableDescriptor.VisibleColumns[1].Name = "Col4";
this.gridGroupingControl1.TableDescriptor.VisibleColumns[4].Name = "Col1";
this.gridGroupingControl1.TableDescriptor.VisibleColumns[2].Name = "Col0";
this.gridGroupingControl1.TableDescriptor.VisibleColumns[0].Name = "Col2";
Sample:
http://websamples.syncfusion.com/samples/grid.windows/F74753/main.htmPlease try this and let me know if you are again having the same problem.
Best Regards,
Srirajan