The problem with the monitoring code is that it is using the same identifier field for each region. This field must be unique, otherwise the second region will overwrite the first. Try changing the code to keep the identifier unique. Like this:
NSArray *uuids = [NSArray arrayWithObjects:@"####-####-###1", @"####-####-###2", nil];
for (NSString *uuidString in uuids) {
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:uuidString]
identifier:[NSString stringWithFormat:@"unique-identifier-for-uuid-%@",uuidString]];
region.notifyOnEntry = entry;
region.notifyOnExit = exit;
region.notifyEntryStateOnDisplay = YES;
[_locationManager startMonitoringForRegion:region];
}