Is there some sort of special rule for FilteringEnabled that prevents CFrame and BodyVelocity from working together? Because I can't think of any other reason as to why my fireball isn't moving.

local RS = game.ReplicatedStorage
local FBE = RS.fireballE

FBE.OnServerEvent:connect(function(Player)
Character = Player.Character
	local fb = Instance.new("Part", workspace)
	fb.Shape = "Ball"
	fb.BrickColor = BrickColor.new("Bright red")
	fb.Transparency = 0.7
	fb.BottomSurface = "Smooth"
	fb.TopSurface = "Smooth"
	fb.Anchored = false
	
		PE = Instance.new("ParticleEmitter",fb)
		PE.Color = ColorSequence.new(Color3.new(255,131,43))
		PE.LightEmission = 0.5
		PE.LightInfluence = 0.3
		PE.Size = NumberSequence.new(5)
		PE.Texture = "rbxassetid://1038411245"
		PE.Transparency = NumberSequence.new(0.7)
		PE.ZOffset = 3
		PE.Name = "Fire"
		PE.Lifetime = NumberRange.new(0.5)
		PE.Rate = 37
		PE.Speed = NumberRange.new(0)

	fb.CFrame = Character.Torso.CFrame *CFrame.new(0,1,-10)	
	BV = Instance.new("BodyVelocity")
	BV.Parent = fb
	BV.maxForce = Vector3.new(math.huge,math.huge,math.huge)
	BV.velocity = Character.Torso.CFrame.lookVector * 90
		
end)

More importantly

	fb.CFrame = Character.Torso.CFrame *CFrame.new(0,1,-10)	
	BV = Instance.new("BodyVelocity")
	BV.Parent = fb
	BV.maxForce = Vector3.new(math.huge,math.huge,math.huge)
	BV.velocity = Character.Torso.CFrame.lookVector * 90

Note: The fireball is not anchored. Another note: Even though it's unanchored, it acts as if it is. I think it has to do with the CFrame line.

Demonstration: GyazoLink

UPDATE It's inconsistent, sometimes the fireball will move, most of the time it won't.