Update: I’ve found the cause of the issue.
I had a filter function attached to the “script_loader_tag” hook that adds a “defer” attribute to all of the JS script tags. The filtering wasn’t limited to the frontend only and somehow interfered with ACF’s process of loading JS files in the backend.
Once the filter has been limited to the frontend only, ACF’s functionality in the backend returned to normal.
Thanks for your time John!