Couple things:
float ackMessg[2]={1,2};
byte ackMessgLen = 4; // NB this 4 is the number of bytes in the 2 ints that will be received
Why is 'ackMessg' an array of floats when the next line says it will be 2 ints? The length of two floats would be 8.
I'm not familiar with the AESLib.h library, but from your code it looks like the function aes256_enc_single() encrypts the plaintext in situ. If so, on every pass through loop it would be re-encrypting the previous encryption results, not the original plaintext. Is that what you want?
If it were my project, I'd print the value stored in each byte of the array (in decimal or hex) right before it's sent with radio.write(). Then, I'd print the raw bytes received at the RX end. Compare the two for match.