I just figured out how to add pitch, yaw and roll to my camera, and it works well enough. However my image appears to distort as I roll the camera! The box appears to be a little wider than it is taller when the camera is in it's default orientation (Which also shouldn't be true) but when I add 90 degrees of roll, the box warps so that it is now taller than it is wider. And it looks completely wrong while in between the two.
I have my code available here https://github.com/BrennyBear/3D-Camera
I may switch to using Quaternions soon, but I assume that is unrelated to my issue with the image distorting.