I had a look at the project, and it's indirectly caused by set_autowrap(true)
.
When you enable this, you are telling the label to auto-wrap, but in Godot this means it will wrap according to a size you tell it to wrap to (and not the container, like you would have expected), so the label won't give itself a size.
The labels you create have no given size, even though you have set set_h_size_flags(SIZE_EXPAND_FILL)
, which is only used with some types of containers.
The fix is to use anchors instead:
l.anchor_left = 0
l.anchor_right = 1