receiving maximum of two bytes with Xbee-api?

I'm trying to send text (placed in uint8_t arrays) from one Arduino to another through XBee shields. The library I'm using for this is Andrew Rapp's xbee-arduino.
I can get both Arduino's comunicating with each other, but somehow the receiving Arduino only ever receives up to a maximum of two bytes, no matter the size of what I'm sending (currently, I'm sending {'T', 'e', 's', 't' }).

I posted the relevant code below. Hopefully someone will have a suggestion.

// Code on both arduinos

/**********************************************************************
   XBEE
 **********************************************************************/

/* XBee ontvangst variabelen.
*/
XBee xbee = XBee();
// Reusable variables for retrieving information.
XBeeResponse response = XBeeResponse();
Rx16Response rx16 = Rx16Response();
Rx64Response rx64 = Rx64Response();
// De data die ontvangen wordt.
uint8_t signalStrength = 0;  // de signaalsterkte van het laaste ontvangen signaal
uint8_t option = 0;          // geen idee
uint8_t* data = 0;           // de ontvangen data

/* Xbee verzend variabelen
*/
char payload[20];        // Integer array die verzonden kan worden.
// Reusable variables for transmitting information
//XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x4008b490);            // This is the SH + SL address of remote XBee COM6 (Green tate)
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x404acbbc);              // This is the SH + SL address of remote XBee COM7 (Purple tate)
Tx64Request tx64 = Tx64Request(addr64, (uint8_t*)payload, sizeof(payload)); // unless you have set DH/DL for 64 bit this will be received as a RX16 packet
TxStatusResponse txStatus = TxStatusResponse();                            // This will contain the status responses of that the XBee receives

/* Ontvangt een request als deze bestaat.
   Als een request gevonden is en deze is geldig, geeft de methode true terug.
   Tegelijkertijd worden de volgende variabeles ingevuld.
   option        - Geen idee waar dit voor is
   data          - De data die verstuurd is
   rssi          - De signaalsterkte van de ontvangen request
   Als er geen request gevonden is of deze is ongeldig, geeft de methode false terug op de eerste plek van de uint8_t array (data[0]).
*/
boolean retrieveRequest() {
  if( xbee.getResponse().isAvailable() ) {
    // Pakket ontvangen.
    if( xbee.getResponse().getApiId() == RX_64_RESPONSE || xbee.getResponse().getApiId() == RX_16_RESPONSE ) {
      // Proper response.

      if( xbee.getResponse().getApiId() == RX_64_RESPONSE ) {
        xbee.getResponse().getRx64Response(rx64);
        option = rx64.getOption();
        data = &rx64.getData(0);
        signalStrength = rx64.getRssi();
      }
      else if( xbee.getResponse().getApiId() == RX_16_RESPONSE ) {
        xbee.getResponse().getRx16Response(rx16);
        option = rx16.getOption();
        data = &rx64.getData(0);
        signalStrength = rx16.getRssi();
      }
      return true;
    }
  }
  else {
    // Geen geldige request ontvangen.
    return false;
  }
}

/* Een methode om bericht te sturen.
   Geeft true als het bericht goed ontvangen is en false als dit niet gelukt is.
*/
boolean sendRequest( uint8_t* p) {
  tx64 = Tx64Request( addr64, p, sizeof( p ) );
  xbee.send( tx64 );
  
  if( xbee.readPacket( 2000 ) ) {
    // Got a response!
    
    // should be a znet tx status                  
    if (xbee.getResponse().getApiId() == TX_STATUS_RESPONSE) {
      trace( "TXRES", 0, 10 );
      xbee.getResponse().getZBTxStatusResponse(txStatus);
      // get the delivery status, the fifth byte
      if (txStatus.getStatus() == SUCCESS) {
        // success.  time to celebrate
        trace( "Success" );
        return true;
      } 
      else {
        // the remote XBee did not receive our packet. is it powered on?
        trace( "Request fail" );
        return false;
      }
    }
  }  
  else {
    // local XBee did not provide a timely TX Status Response -- should not happen
    trace( "TX response" );
    trace( "failed.", 0, 12 );
    return false;
  }
}

// Code on sending arduino
void loop() {
  uint8_t test[] = {'T', 'e', 's', 't' };
  sendRequest( (uint8_t*)test );
}

// Code on receiving arduino
void loop() {
  trace("wait", 0, 2 );
  if( xbee.readPacket( 2000 ) ) {
    trace("packet found", 0, 12);
    delay( 100 );
    if( xbee.getResponse().isAvailable() ) {
      trace( "pack avail", 0, 22 );
      retrieveRequest();
      trace( "pack read", 0, 32 );
      //sprintf( debug, "%c", rx16.getData(0) );
      trace( &rx16.getData(0), 0, 42 );
      sprintf(debug, "%d", sizeof( &rx16.getData(0) ) );
      trace( debug, 0, 52 );
    }
  }
  else {
    trace( "no packet", 0, 12 );
  }
}

// output on receiving arduino
wait
packet found
pack available
pack read
Te               <---- This is the weird part. Somehow I only end up receiving 2 bytes.
2                <---- sizeof( &rx16.getData(0) ). Seems to be working properly.