You may want to try and use dummy extensions.
So, during normal office hours (8-6), you route normally to the call center. During the non-office hours, you route to a dummy extension (one that is not connected) which is then set to use custom office hours (not global). You then also set the extension to change its status automatically. As the extension is not registered, you set up the available status to forward to the IVR and the OUT-Of-Office and away settings to call to the external number.
I have not tried this, but what should happen is that during the normal office hours of the company an inbound call will go to the call center. Then when the global hours shift to non-office hours, it will then forward the calls to the dummy extension with its custom hours and automatic status changing. During the period when the extension is in hours the extension will be 'available", but unregistered so you set to forward to the IVR. Then, when the dummy extension's custom hours indicate the need to change to out-of-office hours, it will then automatically shift to away or out of office which will should then send to an external number as set in the away and out-office settings.