The door idek I cant help you here maybe a transparency problem.
The brokenness is Roblox automatically decimating your mesh to run on toasters the solution is to upload the mesh in sub 10k/21k segments NOT as a batch upload but as individual uploads.
Basically get a cube and duplicate your mesh scale the cube to fit a segment of your mesh now with the mesh Boolean it with cube using difference this creates a segment of your mesh save it to a file and upload if the mesh is under tri limit it will look fine otherwise do it again with a smaller segment repeat until the entire mesh is uploaded as segments and piece them together.
Segmenting + array = mesh over triangle limit.
Lots of mesh upload individually = under triangle limit.
The array modifier defeats the point of segmenting the mesh because the final file will contain the same amount of triangles as without segmenting the mesh.
Segmenting was to upload each part individually not as a single file.
Array isn’t broken your file just ends up with more triangles if you use array pushing the mesh above Roblox’s triangle limit causing a mandatory decimate modifier to be applied to your mesh without your knowledge.
EDIT:
In studio duplicate your mesh segment and place to end to end repeat until you are satisfied with the length then add the front and back ends use WeldConstraints to connect the segments together so the model doesn’t fall apart.