Model stored in OOP table does not return correct CFrame value

Assuming the gun is located in a viewport, and you draw the bullet trail in workspace, it might be that the worldmodel position isn’t the same in workspace.
If the camera is located at origo in the worldmodel, the barrel position wouldn’t be located very far from origo itself, so assuming the bullet module applies the offset of the character/HumanoidRootPart, the position in workspace transtales to an unexpected position.

As the other guy said, you could try and apply the offset of the workspace camera, since the camera in the worldmodel would be the point of reference for the barrel position.