Here is the important bits of code below:
local GlobalVelocity = Vector3.new(0,0,40) -- For simulation
local LocalVelocityCF = Part.CFrame:ToObjectSpace(CFrame.new(Part.Position + GlobalVelocity)) -- Convert to a local velocity
local RobloxLocalVelocity = LocalVelocityCF.Position -- Get the Vector3 position value instead of the whole CFrame.
local Lift = 100 -- For simplicity sake
local Drag = 30 -- For simplicity sake
local LiftDirection = LocalVelocity:Cross(Part.CFrame.RightVector).Unit -- I suspect this is the error, something with the .RightVector being incorrectly set up (?)
LiftVector = Lift*LiftDirection -- The local force vector of lift
local LiftArrowPosition = CFrame.new(LiftDirection * Lift)
local DragDirection = -(LocalVelocity.Unit) -- Opposite of movement
DragVector = Drag*DragDirection -- The local force vector of drag
local DragArrowPosition = CFrame.new(DragDirection * Drag)
LiftArrow.CFrame = Part.CFrame:ToWorldSpace(LiftArrowPosition) -- Move the lift visualization arrow
DragArrow.CFrame = Part.CFrame:ToWorldSpace(DragArrowPosition) -- Move the drag visualization arrow