Elf Characters Not Aligning Correctly

Hey there,

I am currently in the process of making a game known as Elf Tycoon. This game involves the player buying elves, (dummy character rigs as placeholders). These characters are then aligned in rows of 8, going on forever. I am having an issue with the system. It seems that every floor apart from the first has its first elf slightly lower than the others. Attached is a screenshot of the issue, and the code is below.

local elvesFolder = script.Parent.Elves
local elfValues = script.Parent.ElfValues
local tycoonLevel2 = script.Parent:FindFirstChild("Tycoon Level 2")

local repStorage = game:GetService("ReplicatedStorage")

local tycoonRoof = script.Parent["Tycoon Roof"]

local currentNumberOfFloors = 1
local currentLevel = 2

local elves = 60
local remainingElves = 60
local number_of_floors = math.floor(elves/9)-1

local tierOneElf = script.Parent.Elves:FindFirstChild("T1 Elf")

local function ResetTycoon()
	for i,v in pairs(elvesFolder:GetChildren()) do
		v:Destroy()
	end

	for i,v in pairs(script.Parent:GetChildren()) do
		if v.Name == "New Tycoon Level" or v.Name == "Tycoon Level 2" then
			v:Destroy()
		end
	end
end

local function ResetElves()
	remainingElves = elves
	number_of_floors = math.floor(elves/9)+1

	if elves <= 9 then
		number_of_floors = 1
	end

	if number_of_floors >= 2 then
		local levelTwo = repStorage:FindFirstChild("Tycoon ".. script.Parent.Name:split(" ")[2] .." Level 2")

		if levelTwo then
			local newLevel = levelTwo:Clone()
			newLevel.Parent = script.Parent
			newLevel.Name = "Tycoon Level 2"
		end
	end

	for i = 1,number_of_floors do
		if i >= 3 then
			local newFloor = tycoonLevel2:Clone()
			newFloor.Name = "New Tycoon Level"
			newFloor.Parent = script.Parent

			for a,b in pairs(newFloor:GetDescendants()) do
				if b:IsA("Part") or b:IsA("MeshPart") then
					b.Position += Vector3.new(0,7.9*(i-2),0)
				end
			end
		end

		for a,b in pairs(tycoonRoof:GetDescendants()) do
			if b:IsA("Part") or b:IsA("BasePart") then
				b.Position = Vector3.new(b.Position.X,28+7.9*(i-1),b.Position.Z)
			end
		end
		
		for j = 1,9 do
			if j == 1 then
				local newElf = repStorage["Tycoon ".. script.Parent.Name:split(" ")[2] .." T1 Elf"]:Clone()
				newElf.Name = "T1 Elf"
				newElf.Parent = elvesFolder

				if i ~= 1 then
					for a,b in pairs(newElf:GetDescendants()) do
						if b:IsA("Part") or b:IsA("BasePart") then
							b.Position += Vector3.new(0,7.9*(i-1),0)
						end
					end
				end

				remainingElves -= 1
			else
				if remainingElves >= 1 then
					local newestElf = nil
					for a,b in pairs(elvesFolder:GetChildren()) do
						newestElf = b
					end

					local newElf = newestElf:Clone()
					newElf.Name = "T1 Elf"
					newElf.Parent = elvesFolder
					
					newElf:MoveTo(Vector3.new(newElf.PrimaryPart.Position.X,newElf.PrimaryPart.Position.Y,newElf.PrimaryPart.Position.Z)+(-newElf.PrimaryPart.CFrame.RightVector*6))
				end

				remainingElves -= 1
			end
		end
	end
end

Note: This is only the first function in the script. This is where the issue would be occurring. Thanks for any help that you can provide!

Screenshot 2023-02-16 at 6.28.29 PM

I have tried so many things to attempt to fix this issue, but nothing has worked. What is bizarre to me is the fact that only one of the elves on each row is messed up, even though all of the other ones theoretically have the same Y position. Could anyone explain why this is happpening, and maybe try to provide assistance in regards to this issue?

The code you posted works as intended for me.

Any chance you could post or pm me a place file with all the relevant stuff?