It seems as if the weld automatically removes itself for some reason... Here's the script (the head doesnt stick to the torso like it should)
local partA = script.Parent.Torso
script.Parent.Humanoid.Died:connect(function()
wait(0.2)
local Neck = Instance.new("Weld")
Neck.Name = "Neck"
Neck.Part0 = partA
Neck.Part1 = script.Parent.Head
Neck.C0 = CFrame.new(0, 1.5, 0)
Neck.C1 = CFrame.new()
Neck.Parent = partA
end)

2 comments
Try commenting line 10 and run the code. Check if the weld still exists. I've recently had many problems with welds being removed after setting the part1 property. Maybe the same is happening to you.
It works, but the weld needs the Part1 property !!!