Hi emuola,
I assume your using the GM v0.147u3, Linux and the Wei-Ya M3129. Please refresh my memory: why would you want to only use the 31kHz range if yours is a tri-sync monitor? You probably had a reason, it's just that I can't remember now.
Anyway, leave alone the switchres.conf
You only need to create a fresh mame.ini (the options you posted are out of date), then edit the option 'monitor' with:
monitor m3129
Now, this sets GM to use the three ranges (15-24-31), with GM's default settings for M3129. If you just want to use the 31 kHz range, and your custom settings, do the following (still in mame.ini):
monitor custom
crt_specs0 31000.00-32000.00, 55-65, 0.33, 3.58, 1.75, 0.316, 0.063, 1.137, 0, 0, 480, 512, 0, 0
If you wanted to enable the three ranges, but setting the 31 kHz range with your custom settings, do this:
monitor custom
crt_specs0 15250-16500, 40-80, 2.187, 4.688, 6.719, 0.190, 0.191, 1.018, 1, 1, 224, 288, 448, 576
crt_specs1 23900-24420, 40-80, 2.910, 3.000, 4.440, 0.451, 0.164, 1.048, 1, 1, 320, 384, 0, 0
crt_specs2 31000-32000, 55-65, 0.33, 3.58, 1.75, 0.316, 0.063, 1.137, 0, 0, 480, 512, 0, 0