Using list control Omit New Condition or Omit Edit Condtion script (as defined in https://docs.servicenow.com/bundle/kingston-platform-administration/page/administer/list-administration/concept/c_AdvancedListControlWithScripts.html) to hide New or Edit button on a related list based on a value of the parent record does hide the New or Edit button as expected.
The global "parent" object is being overridden somewhere by ACL, Business rule, etc.
An example would be an ACL on incident table has the script of "var parent". When the list control for one of the related lists on incident is using "if (parent.active == true)" that would not work because at this time it's not using the global "parent" object due to the "var parent" being defined in the ACL script conflicting with it.
Review any processes (such as script in ACLs, Business rules, etc.) to make sure that the "parent" object is not defined there locally as that will override the global "parent" resulting in conflict that prevents OOB functionality from working correctly.