There is this GPO in Computer Configuration > Policies >
Administrative Templates > Windows Components > Windows Update : Turn
off auto-restart for updates during active hours.
This is not a GPO, but, rather a setting present in one of the GPOs. Please be careful that the same setting can be configured on any of the GPOs present/available.
I set active hours from 7 AM to 6 PM and say Apply and/or OK then when
I reopen this GPO the Active Hours are Start: 12 AM and End: 12 AM.
Are you sure that you're editing the same GPO in your management console? Please note that you've to make changes from Group Policy Management Console (GPMC).
How are you checking / modifying the GPO?
Also, are you using gpedit.msc to apply local changes in your local system?
Why do I get this behavior? How may I check what are the real values
being applied? On the client computer you loose access to this
parameter.
On the client system where you're checking for end-result, you should check for Resultant Set of Policies (RSoP.msc).
In the RSoP output, navigate to Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Update : Turn off auto-restart for updates during active hours
-> Check the name of the policy which is applied on this particular setting. Is it the same as the one where you made the changes?
That would give a clear idea of which policy is overriding or getting applied.
Based on the results, there is a possibility that the changes in current GPO is getting overridden by some other GPO applied on that client system, based on the preference.