The handle range is different for each server you connect to; The reason the BLE UART uses constant values is that they are creating both sides of the BLE connection, and thus they know what the handle values will be.
More information on the function _discoverallcharacteristics() is documented in the IDE if you open the API/help datasheet for the BLE component, or view the comments in the source code directly (BLE_1_StackGattClient.h, line 510~)
Thanks for the information. It looks like the issue was that the server was caught in a blocking call partway through the connection procedure, so it wasn't responding to any of the client's requests. Resolved now.