Mesh relative rotation issues

I’m trying to add some functionality to my game where when the player picks up an object, they can rotate it around multiple axes. I thought I had it working correctly, however I’ve found that with certain objects, it will only rotate around the Z axis.

Here’s my setup:

And here’s the results of rotating two different objects in the game:

I’ve tried changing it from rotating around the Roll, to Pitch and for some strange reason the object spins about half way and then gets stuck:

Very confused.