Texture using incorrect size after being loaded via datastore

I’ve been having this very odd bug since I’ve made textures save in my ROBLOX game, where maps are able to saved and loaded. They work fine until their loaded ingame, which for some reason, causes the size to be back to 3x3.

Here’s how the game handles saving the texture object.

if v:IsA("Texture") and alreadyfound == false then
alreadyfound = true
table.insert(stuff, {v.ClassName, v.Parent.Name, v.Name, ogname, v.ZIndex, v.Texture, v.Transparency, {v.Color3.R, v.Color3.G, v.Color3.B}, v.Face.Value, v.OffsetStudsU, v.OffsetStudsV, v.StudsPerTileU, v.StudsPerTileV})
end

Now here’s how the game handles loading it (A little bit scuffed but it works)

if v[1] == "Texture" then
objectLoaded = Instance.new("Texture", parentfound)
objectLoaded.Name = v[3]
objectLoaded.ZIndex = v[5]
objectLoaded.Transparency = v[7]
objectLoaded.Texture = v[6]
objectLoaded.Color3 = Color3.new(v[8][1], v[8][2], v[8][3])
objectLoaded.Face = v[9]
objectLoaded.OffsetStudsU = tonumber(v[10]) or 0
objectLoaded.OffsetStudsV = tonumber(v[11]) or 0
objectLoaded.StudsPerTileU = tonumber(v[12]) or 3
objectLoaded.StudsPerTileV = tonumber(v[13]) or 3
return
end

I’ve analyzed this same code a bunch of times and still can’t figure out as to why it keeps resetting it’s size back to 3x3. I’ve tried making it a string then into a number, didn’t work, made it a normal thing which also didn’t work. Please help since this bug is quite infuriating, to me and other casual players trying to build a map.

Print out the table and check if you’re getting the correct reference, because v[8][1] is confusing to read and prone to errors

I forgot to tell this but I’ve printed it out once, and the Offset and StudsPerTile values would just return as nil for practically no reason.

How are you saving them?

JSON Conversion, then into a table in a datastore.

Are you decoding the JSON string when loading from the datastore?

Yes, I am decoding it upon loading from the datastore.