I believe this question is a duplicate of my own. I think there is a bug with Apple's region monitoring APIs. I have filed a radar for this issue with Apple already, but have not heard anything back as of yet.
One way I get around this is by saving the timestamp in the didEnter and didExit methods and if the methods fire within 10 seconds of the saved timestamp, just skip the method as a dupe.
If anyone is interested, I have a project on github showing this problem in action.
https://github.com/billburgess/GeofenceBug
Feel free to file another radar as that is the only way Apple will notice the issue and take action. The radar number is 12452255 - Duplicate Delegate calls for region monitoring.
Here is the open radar link with the information if you would like to dupe this radar. http://openradar.appspot.com/radar?id=2484401