Port position and linkable/non-linkable parts in a node

I think you want to do what is discussed at GoJS Ports in Nodes-- Northwoods Software.

In your case that means setting GraphObject.portId to the empty string on the rectangular panel in your node template.

You might also want to set Part.layerName to “Background” on your link template, so that all Links are behind all Nodes. But that’s your choice, if you want Links not to cross over your TextBlocks.