I am curious if it was a specific design choice to create separate business objects? If so, what are the intended benefits?
My understanding is that a relationship needs to point to a unique value, this is why we use RecId, a GUID, as a constraint field. Therefore, we can use unique fields or validated fields, which use a business object that have a RecId, in relationships. As the BOs you have created are new objects, it is likely why you can only use RecId as a constraint, taking a look at some of the more prominent BOs such as Incident or Change may help to show this.
Now I can't say this is the most efficient method, but is how I would go about setting this up.
Assuming the following cardinality:
All Staff (Many - One) Managers; Managers (Many - One) Directors
All Staff would have a ManagerLink field, Managers would have a DirectorsLink field.
Create new relationships: AllStaffAssocManager (Through fields ManagerLink -> RecId), ManagerAssocDirector (Through fields DirectorLink -> RecId)
It sounds like you have a 'Reports to Pos #' and a 'Pos #' field. Now, when adding Link Fields to forms, you can select the Display Field. As such, you can select the 'Position #' field at this point in order to link Directors/Managers based on their position number. You can also select a custom label, so this can be seen as 'Reports to' on the layout.
For further information about relationships, the help documentation may prove useful https://help.ivanti.com/ht/help/en_US/ISM/2017/Index.html#Configure/Relationships/Adding_a_Relationship_to.htm
For using relationships in expressions and such, the additional documentation may also help https://help.ivanti.com/ht/help/en_US/ISM/2017/Index.html#Reference/Expressions/Field References.htm
Hope this helps - please feel free to ask any questions