I wanted to create items that could not be traded or sold and as it turns out it is much easier than I imagined.
When assigning items to a hero the standard tag to use is <AutoCreateEquipment>. If you use <Equipment> instead, the item will display the following properties:
1) The item does not appear in the inventory of the character and can thus not be sold or traded
2) The item is equipped from the start. The item is unequipped if anything for that slot is equipped. If the replacement item is then unequipped, the soulbound item is again automatically equipped. Example: I have a soulbound horse. The hero will always ride that horse, unless I equip another mount. If I equip another mount and then unequip it, the hero will return to riding its first horse.
3) The item appears in the "portrait" in unit details as an icon like normal items do (NOT accessories!)
4) Its shopvalue is not added to the cost of a champion for recruitment
5) It will not appear as an icon on sovereign selection screen but it is visually equipped
This can be used to give heroes soulbound items that they have from the start, like named mounts or family heirlooms.