Once set parentMenu looks to be read-only (no real reason for that I think) but you can set it in the constructor:

new Item({
  parentMenu: tabContextMenu,
  label: "foo"
});

Your code does that by default if TabContext is included in the list of contexts at creation time. TabContext is broken however if you add it to the contexts after creation time, in that case the item won't get added to the tab context menu and will just never show up.