Bones "multiplying" in rotation/location when rotating parent bone in Blender

So I am doing a CS:GO to TF2 port of a weapon, and I want to rig the CSGO arms onto Spy’s arms.

So what I am attempting to do is: Pose the Spy Arms into the CSGO pose, put a Child Of on each of the Spy’s arm’s bones corresponding to the CSGO arms (for example, the Spy hand bone would have a Child Of modifier put onto the CSGO hand bone). So in theory after all of that it should follow the CSGO arms movement/rotations. However there is this really strange problem that the bones get multiplied in rotations/locations from the root bone.

Here is a screenshot of the Spy arms posed into CSGO arms with nothing changed:[/t]
Here is a screenshot of the Spy arms after rotating the CSGO arm hand bone, as you can see the rotations get “multiplied” in effect for some reason. (Sorry for terrible quality)
Here is a screenshot of the Spy arms last thumb bone being rotated, as you can see the rotations don’t get multiplied (this only happens for the very last bones of the skeleton)

Is there any way to fix? Or does anyone have a different method of doing this?

That might be because of the way is weight painted. Its not precisely multiplying is just that the force that each bone applies over the geometry is different in both models. You could reweight both models so their rigging match, but that could take you a really long and tedious time.

I didn’t quite understand exactly what you are trying to do, or why you want the bones of one model to follow the others. So if you could explain it in other words there might be a better method to do it.

Already figured it out, I had to use a gigantic mess of constraints/parentsand somehow got it working. Anyway what I was doing was porting the CS:GO Karambit knife to TF2 for spy.