Object transform rotation around correct pivot, but wrong pivot after colliding
I'm messing around a bit trying to create a table football table. So this involves create rods with players on them. The rod should be free to rotate around the Z axis with the players moving around the rods Z axis. I created a parent object for the rod with players to do any transforms on. I made sure that the pivot point is in the center of the rod so that rotating along the Z axis of the game object keeps the rod in its position while rotating. This worked as shown in the first picture, the object position remains unchaged while rotating.
The problem comes in when I run the game and have a ball collide with the 'player', this starts the player and rod spinning, but not around the right pivot point. The rod now moves in a circular/eliptical pattern. I checked that the rotation isn't happening around the center point either and it isn't. It rotates around an axis somewhere between the center point and the pivot point. Am I doing something wrong or am I tackling this from the complete wrong angle completely?