Ahh yes, I totally forgot about the phones maybe, sometimes, probably could this time work and range the beacons. Half the time my suggested method for getting the ranging to work is to delete app, restart phone, turn bluetooth on/off, redownload app, pray, sleep, buy new phone... It's unbelievable how ridiculously inaccurate the system software is using CoreLocation out of the box. I've written a wrapper for it (https://github.com/Intermark/Buoy/) to make internal dev a lot easier, and even then it's a pain in the ass to find why this prototype isn't working.
I wonder whether the fault is at the iBeacon API/CoreLocation framework or the hardware beacons used? From your description above it sounds to me the hardware beacons are of questionable quality (low quality batteries and bad antenna maybe?)
I thought this too. But even with the plugged in RadBeacon (http://www.radiusnetworks.com/ibeacon/radbeacon/) and no EM interference between it and the phone, I was still getting extremely spotty results.
It's most probably a combination of all random variables (EM interference, beacon hardware, software, phone BLE antennae, etc) that makes it so frustrating and practically non-deterministic.
Have you tried emulating iBeacon with iDevice or a Mac? I'd consider those to have high quality Bluetooth chips and great antennae. If it is still not ideal, the blame could be on the software stack or maybe the whole idea is flawed :|