Image Label reappearing on surface GUI after deletion

I have a simple gun system using fast cast and world to gui, for the bullet holes.

When the bullet hole is created it’s created as usual with the image right?

This clip shows exactly my issue:

(to clarify, the old bullet holes re appear and duplicate whenever a new one is created)

here is a the function for creating the bullet hole:

function crateBulletHole(PartHit, WorldPosition)
	local SurfaceFace, Width, Height, RelativeX, RelativeY = worldGui:WorldPositionToGuiPosition( PartHit, WorldPosition )
	if (not SurfaceFace) then
		warn("Could not create bullet hole. No SurfaceFace")
		return
	end

	local SCALE = 16

	local SurfaceName = "BulletHoleSurface"..tostring(SurfaceFace)

	local SurfaceGui = PartHit:FindFirstChild(SurfaceName)
	if ( not SurfaceGui ) then
		SurfaceGui = Instance.new("SurfaceGui")
		SurfaceGui.CanvasSize = Vector2.new( SCALE*Width, SCALE*Height )
		SurfaceGui.LightInfluence = 1
		SurfaceGui.Face = SurfaceFace
		SurfaceGui.Name = SurfaceName
	end
	
	local BulletDecal = Instance.new("ImageLabel")
	BulletDecal.BorderSizePixel = 0
	BulletDecal.BackgroundTransparency = 1
	BulletDecal.Image = "http://www.roblox.com/asset/?id=8135535081"
	BulletDecal.Size = UDim2.fromScale(0.0001, 0.0001)
	BulletDecal.AnchorPoint = Vector2.new(0.5, 0.5)
	BulletDecal.Position = UDim2.new(RelativeX, 0, RelativeY, 0)
	BulletDecal.Parent = SurfaceGui

	SurfaceGui.Parent = PartHit
	
	game:GetService("Debris"):AddItem(BulletDecal, 1)
end

and here is the snippet of code that calls the function:

caster.RayHit:Connect(function(ActiveCast, RaycastResult, segmentVelocity, cosmeticBulletObject)
			local part = RaycastResult.Instance
			local model = part:FindFirstAncestorWhichIsA("Model")

			cosmeticBulletObject:Destroy()
			
			if model then
				local hum = model:FindFirstChildWhichIsA("Humanoid")
				if hum and hum.Health > 0 then
					if model.Name ~= player.Name then
						if part.Name == "Head" then
							hum:TakeDamage(100)
						else
							hum:TakeDamage(math.random(30, 40))
						end
					end
				else
					crateBulletHole(part, mouseHitPos)
				end
			else
				crateBulletHole(part, mouseHitPos)
			end
		end)

any help would be highly appreciated