I'll edit this post tomorrow with the answers to the rest of everyone's questions and suggestions as it's getting late here.
Why do you get the message once you rise the encryptedMessage to the power of privateExponent and then take the modulus of this process?
In layman's terms, the public exponent is derived from the private exponent in such a way that multiplying some message data, in big integer form, with both of them cancels each other out.
AFAIK modulus is the remainder of a division. With what do you divide encryptedMesaage**privateExponent?
In the private (and public) key file there is a field called "modulus" which is used for that.