So I can't quite determine what your issue is. Putting it together with code, it looks good in my editor if I just do something this:
property_control = Button.new()
property_control2 = Button.new()
property_control3 = Button.new()
vbox.add_child(property_control)
vbox.add_child(property_control2)
vbox.add_child(property_control3)
add_child(vbox)
I get this:

(this is based on the docs random_int tutorial)
Even better if I add set_bottom_editor(vbox) to the end of it:

I'm curious what about your scene differs from this procedural setup. Can you show it?