Before i tried with this script...
I think the issue it's related with display/adapters configuration in windows...i manage 2 options: monitors and adapters connected in the past or emucrt drivers not saves some entry with @60 by default.
#SingleInstance force
SetWorkingDir %A_ScriptDir%
Sleep, 5000
ChangeResolution( (bpp:=32), (breite:=640), (hoehe:=480), (hZ:=60) )     
ChangeDisplayFrequency(60)
Exitapp
ChangeResolution( cD, sW, sH, rR ) 
{ 
   VarSetCapacity(dM,156,0), NumPut(156,2,&dM,36) 
   DllCall( "EnumDisplaySettingsA", UInt,0, UInt,-1, UInt,&dM ), 
   NumPut(0x5c0000,dM,40) NumPut(cD,dM,104), NumPut(sW,dM,108), NumPut(sH,dM,112), NumPut(rR,dM,120) 
   Return DllCall( "ChangeDisplaySettingsA", UInt,&dM, UInt,0 ) 
   }
   
ChangeDisplayFrequency(Frequency) {
   VarSetCapacity(DEVMODE, 156, 0)
   NumPut(156, DEVMODE, 36, "UShort")
   DllCall("EnumDisplaySettingsA", "Ptr", 0, "UInt", -1, "Ptr", &DEVMODE)
   NumPut(0x400000, DEVMODE, 40)
   NumPut(Frequency, DEVMODE, 120, "UInt")
   Return DllCall("ChangeDisplaySettingsA", "Ptr", &DEVMODE, "UInt", 0)
}