I deployed the same iBeacon region monitoring code in 7 devices. One of them, iPhone 6 running iOS 9.2.1, is regularly failing to detect beacon states (inside, outside, etc..).
I tried with and without SIM card and when the SIM card is inserted it gives better results. However, when compared to an iPhone 6 running iOS 9.2.3 and one running iOS 9.2.1 it gives worst results (the latter two iPhone's always detect the region).
Have you experienced the same in this version of iOS (iOS 9.2.1)?
Is this an known official Apple bug?
My theory behind this:
iBeacon region monitoring uses iPhone location, iPhone location can be improved using Wi-Fi and phone signal and possibly also accelerometer and gyroscope data.
iOS could be using these in combination withe the Bluetooth data to "tune" the beacon ranging thread (in other words if a significant location happens then the background monitoring frequency will be increased). Hence if this tuning is depending on the SIM card information there could be a version of iOS where they put a stronger dependency on the SIM card presence leading to what I am observing.