Sweep trace is not returning correct hit locations

As for how the UPA_BlueprintFunctionLibrary is implemented in code (I removed the unnecessary bits, since the reply was getting too big);

if (BlahBlah)
{
	FCollisionObjectQueryParams ObjectParams;
	ObjectParams.AddObjectTypesToQuery(ECollisionChannel::ECC_Visibility);
	ObjectParams.AddObjectTypesToQuery(ECollisionChannel::ECC_Pawn);
	ObjectParams.AddObjectTypesToQuery(ECollisionChannel::ECC_WorldStatic);
	ObjectParams.AddObjectTypesToQuery(ECollisionChannel::ECC_WorldDynamic);

	FCollisionQueryParams TraceParams(TEXT(""), false, ToolOwner);
	TraceParams.bTraceAsyncScene = true;
	TraceParams.bTraceComplex = true;
	TraceParams.bReturnPhysicalMaterial = true;

	FVector MuzzleLoc = GetSocketLocation(MuzzleSocket);
	FRotator MuzzleRot = GetSocketRotation(MuzzleSocket);
	FVector TargetLoc = MuzzleLoc + (FRotationMatrix(MuzzleRot).GetScaledAxis(EAxis::X) * Range);
	TargetLoc.X = ToolOwner->GetActorLocation().X;

	FHitResult TraceHit(ForceInit);

	bool bHit = GetWorld()->LineTraceSingleByObjectType(TraceHit, MuzzleLoc, TargetLoc, ObjectParams, TraceParams);

	if (bHit)
	{
		UPA_BlueprintFunctionLibrary::DealRadialDamageWithFalloff(0.f,
			Damage,
			CurrentFlintlockBullet.InnerRadius,
			CurrentFlintlockBullet.OuterRadius,
			CurrentFlintlockBullet.FallOff,
			TraceHit.ImpactPoint,
			CurrentFlintlockBullet.DamageType,
			ToolOwner->GetController(),
			ToolOwner,
			TraceHit,
			false,
			true
		);
	}
}