I have a simple scene, no scripts. It contains the base Node2D with a child sprite. The Sprite has a child VBoxContainer which has two centered labels each filled in with 000.

In my GameWindow scene I have a script to spawn instances of the above scene into a grid pattern. But when it does this, only one of the two text labels is displayed, where did the other one go and why is it not centered? Am I instancing the scene incorrectly?

This is the entirety of the code:
extends Node2D
# Grid Variables
var grid_width = 3
var grid_height = 3
export (int) var x_start
export (int) var y_start
export (int) var offset
export (Texture) var grid_lines
export (PackedScene) var grid_cell
var all_cells = [];
func _ready():
all_cells = make_2d_array()
print(all_cells)
func make_2d_array():
var array = []
for i in grid_width:
array.append([])
for j in grid_height:
array[i].append(null)
return array
func draw_grid():
for i in grid_width:
for j in grid_height:
var cell = grid_cell.instance()
cell.position = grid_to_pixel(i, j)
add_child(cell)
#draw_texture(grid_lines, grid_to_pixel(i, j))
print(grid_to_pixel(i, j))
func _draw():
draw_grid()
#TODO --REFINE--
func grid_to_pixel(column, row):
var new_x = x_start + offset * column
var new_y = y_start + -offset * row
return Vector2(new_x, new_y)