Sounds like a parenting issue. Make sure parent induced translation is applied to child sword correctly or just merge the meshes.
But if ya want here is a hack if the sword is tracking correctly but just translated off a bit. Change the text of .x file.
Find the FrameTransformMatrix for the sword (Should be near the top) like the following:
That bottom row is translation (Diagonal is scale), just change the matrix until sword back in hand for first frame and hope rest is right.