Ports normally do not have labels. GoGeneralNodePort does have a label (a GoGeneralNodePortLabel), but such ports are expected to be managed by GoGeneralNode as left or right ports. The corresponding labels are then positioned by GoGeneralNode.LayoutChildren and GoGeneralNodePort.LayoutLabel to be next to the ports.
If you are adding one or more ports to a group that you have as the Icon of the GoGeneralNode, then that’s fine, but it can’t be managed by GoGeneralNode as if it were a left or right GoGeneralNodePort. So you should just create your own GoText to act as the label for your extra port, and add it to and position it in the group that is your Icon. Remember to make it not-Selectable.
You can Add whatever GoObjects you want to the GoGeneralNode, and then position/size them as you wish in an override of LayoutChildren. That’s true for GoPorts as well as GoTexts. You’ll probably want to position children relative to the Icon, or relative to some other child that is positioned relative to the Icon.