I don’t have access to the template resources you refer to, so I tried this:
<DataTemplate x:Key="DataObjectNodeTemplate0">
<go:NodePanel Height="{Binding Path=Data.Height, Mode=TwoWay}"
Width="{Binding Path=Data.Width, Mode=TwoWay}"
go:Part.SelectionAdorned="True"
go:Part.Resizable="True"
go:Node.Location="{Binding Path=Data.Location, Mode=TwoWay}">
<Path x:Name="Shape" Stretch="Fill"
Stroke="Gray" StrokeThickness="1"
Fill="{Binding Path=Data.Color}">
<Path.Data>
<GeometryGroup>
<LineGeometry StartPoint="0,0" EndPoint="0,8" />
<LineGeometry StartPoint="0,8" EndPoint="8,8" />
<LineGeometry StartPoint="8,8" EndPoint="8,2" />
<LineGeometry StartPoint="0,0" EndPoint="6,0" />
<LineGeometry StartPoint="8,2" EndPoint="6,2" />
<LineGeometry StartPoint="6,2" EndPoint="6,0" />
<LineGeometry StartPoint="6,0" EndPoint="8,2" />
</GeometryGroup>
</Path.Data>
</Path>
<TextBlock Text="{Binding Data.Text}"
HorizontalAlignment="Center" VerticalAlignment="Center" />
</go:NodePanel>
</DataTemplate>
And it works fine. Maybe there’s a problem with an adornment template that you applied.
For the second issue, I do notice that the Path shape you have defined is an open figure, not a closed one, so one cannot Fill it with a Brush, as you can see by the Fill binding. Because there’s no brush in the middle of the shape, the user cannot pick that object there, which is why the user cannot drag it at that point.
We do have a similar figure: NodeFigure.File. Here’s how I would use it:
If by “collapsed” you meant zero width and height, perhaps you either need to specify a MinWidth and a MinHeight on some element in your template, or if the Width and Height are bound to data, make sure the data values are non-zero.