1. Change the grid value first.
2. Click the Grid icon down arrow and select New and name your custom grid.
3. On the top menu select File / Save All
This saves the grid settings into a file here..... (I have Eagle 9.6.1)
C:\Users\UserName\AppData\Roaming\Eagle\settings\9.6.1\eaglerc
This file gets written whenever you close Eagle so do not edit it by hand.
Now if you check inside that file you will see your custom grids. On mine it looks like this....
Sch.CommandPopup.Grid.1 = "oneinch;inch 1.0 1 Lines On inch alt inch 0.01 inch"
Sch.CommandPopup.Grid.2 = "halfinch;inch 0.5 1 Lines On inch alt inch 0.01 inch"
However they initially got saved as 0.1 instead of 1.0 or 0.5.
I changed it in the grid UI window and then clicked New and saved it with the same name but it didn't update the changes. It still showed as 0.1 in the eaglerc file. So Eagle won't overwrite an existing saved grid with another different grid.
I figured out why. I clicked New in the Grid icon down arrow menu before changing the grid hehe! Step 1 is important. Change the grid first then select New. It's kind of like reverse polish notation. You would think you would have to click new first then define the grid then save it. But no, you have to define the grid first then select new 😉
You can't manually edit this file because it will be re-written when you close Eagle.
To fix it or change an existing grid, click the grid icon small down arrow to bring up the other saved grids list, right click on your custom saved grid and select Edit. Then manually change the incorrect 0.1 to the required value (in my case 1.0 or 0.5).
Go to the top menu File / Save All (or close Eagle) and the eaglerc file will be re-written and will be correct.... and more importantly it will stay that way when you next load Eagle.
It works for me. Let us know how you go with following my instructions.