First of all, this is not a Read operation on a characteristic but rather a Write operation from Client to Server. I guess that is what you meant.
Coming to array vs uint16, you can consider the uint16 as an array too, with the size of 2 bytes. The first byte you receive is the LSB and the second byte is MSB. You can reconstruct the uint16 value as below:
uint16value = ((uint16)wrReqParam.handleValPair.value.val << 8) | ((uint16)wrReqParam.handleValPair.value.val) ;
Yes that is what I meant. Thank you very much.