components[0].properties
is not a valid source property name.
Try this instead:
new go.Binding("visible", "components", function(a) { return !!a[0].properties; })
Regarding your main question, I would remove the “Vertical” Panel – it seems useless to me because it only has one element in it. (It’s hard to tell, since you didn’t format your code using Code Formatting. )