Zero is not “off”, it is a parameter binary setting. of 0-7. Did other software come with the laser? The controller may not allow updates using the GRBL command structure except with a special program.
I can see where that appears as an on/off. It is really a Bit 0/1 switch. Still, strange you can change $23 and it sticks, but $3 does not. They both use the same binary table for the settings.
Can you enter $$ in the Console and tell me the current value of the $3 parameter. Maybe it will retain if you enter the updated value through the Console window.
Do not try to use this table yourself, at least not for now. I just pasted the table here so I do not have to hunt for it again.
Setting Value Mask
_ Invert____X Y Z
0 00000000 N N N
1 00000001 Y N N
2 00000010 N Y N
3 00000011 Y Y N
4 00000100 N N Y
5 00000101 Y N Y
6 00000110 N Y Y
7 00000111 Y Y Y