IVR Destination Issues

So I have recently went live with our new system and have ran into an issue with our IVR. I have options 1-8 setup to go so either ring groups or extensions. The issue stems from where we moved from 3 digit extensions to 4 digit extensions. When someone reaches our IVR and dials 153 an old extension they reach option 3 on the IVR. This happens with any extension ending in 1-8 if they are the old 3 digit extensions.I have the invalid destination set to our operator but it dosent see the 3 digits as being invalid. I have tried adding NXX and XXX in the IVR thinking that may pick up a 3 digit number being entered and send it to the operator but it dosent help. Any Ideas on what I may be missing?
EDIT the old extensions where never set up in the new system it was in our old pbx.

You can create a custom dialplan usin from-did-direct-ivr-custom context… If You take a look into extensions_additional.conf you’ll see:

[ivr-1] ; your_ivr
include => ivr-1-custom
include => from-did-direct-ivr


include => from-did-direct-ivr-custom

Maybe… if you create in extensions_custom.conf something like this for each extension:

exten => 112.,1,Macro(blkvm-clr,)
exten => 112.,n,Set(__NODEST=)
exten => 112.,n,Goto(from-did-direct,2${EXTEN},1)

In this case, if someone press 112 (to reach exten 112) the dialplan calls exten 2112. You can create this simple dialplan for every new extension.
This alter every IVR in your box.