With what you want to achieve, it would be best to just have the fake mag animated too. And just toggle the visibility/transparency of the mags, instead of cloning the mag and positioning it in code.
There is another way, however you did mention you prefer not to do precise calculations to position the mag so just animating it is the easiest option.
Here is what I did, and you can play with the actual number if you want, but this should work.
I placed a local script in StarterCharacterScripts just for testing purposes
-- // Services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- // Variables
-- Get the "mag"
local fakeMag = ReplicatedStorage.Mag:Clone()
-- Get the character's left arm
local Character = script.Parent
local leftArm = Character:WaitForChild("Left Arm")
-- Create a weld
local Weld = Instance.new("Weld")
Weld.Part0 = fakeMag
Weld.Part1 = leftArm
Weld.Parent = fakeMag
fakeMag.CFrame = leftArm.CFrame -- Move the fake mag to the left arm
Weld.C0 = CFrame.new(0, leftArm.Size.Y / 2, 0) -- Position the weld so that it is on the bottom/hand of the left arm
-- I just place the mag inside the character here
fakeMag.Parent = Character
If you need more help or more explanation, feel free to ask. Tell me how this goes!