Unable to resize the shape

The problem is that your figure generator is supposed to return a Geometry whose size is the given w width and h height. But you are just returning a fixed size Geometry. It would be easier not to define a figure generator at all.

    myDiagram.nodeTemplate =
      $(go.Node, "Vertical",
        {
          selectionObjectName: "SHAPE",
          resizable: true, resizeObjectName: "SHAPE"
        },
        $(go.Shape,
          {
            name: "SHAPE",
            geometryString: "F1 M0 0 L50 20 20 50z",
            fill: "green"
          },
          new go.Binding("fill", "color")),
        $(go.TextBlock,
          { margin: 8 },
          new go.Binding("text"))
      );

Notice that this uses a fixed size Geometry, but because by default the Shape.geometryStretch is treated as go.GraphObject.Fill, it will automatically be stretched to the desired width and height as the user resizes the Shape.

If you do not want the shape’s geometry’s aspect ratio to change, just set geometryStretch: go.GraphObject.Uniform, but then you’ll probably have some empty space on one side or the other.