You may be over-normalizing (yes, that is possible) or you may be obfuscating the issue by trying too much at once. That will make things bewildering faster than any other thing I know in Access.
Let me do this for a simple subset of what you have.
First, having separate tables for people in various roles might or might not be what you want. I don't know for sure. But let's say you look at TWO of the tables: Doctors and Staff. Combine the two tables and have a separate "attributes" table (or set of tables).
Instead of
tDoctor : DocID, DocName, DocSpecialty, Docthisthatandtheother
tStaff: StaffID, StaffName, StaffDuties, Staffwhatever
and then linking multiple phones, multiple addresses, etc.
How about
tPerson: PersID (primary key), PersName, other personal data
tRoles: RolePK, PersID (as foreign key), Rolename (or role code or both), PrimaryYesNo
tAddrs: AddrPK, PersID (as FK), address, PrimaryYesNo
tPhone: PhonePK, PersID (as FK), phone number, type (either coded or just say CELL, WORK, HOME, etc.), PrimaryYesNo
OK, now you can just use a big JOIN query (perhaps multi-faceted) to find each person joined with their primary role, primary address, primary phone, etc.
This next part is where new Access users get confused, so bear with me.
From the person side, you have a one-to-many relationship because one person could have multiple roles, multiple phones, multiple addresses, etc. From any one of the individual "attribute" tables, that is a many-to-one relationship to see a list of, say, doctors. You do a query on the role table where the role name is "DOCTOR" (or however you use this feature) JOIN across the PersID to the person table to get the name.
You can REALLY get kinky if you must because in a query you have the ability to define a TEMPORARY relationship. So if you wanted each doctor's business phone, you would create a temporary link to the Phone table across the PersID and with other criteria (such as PhoneType = "WORK") to narrow the list of choices. That way you have a unique linkage for each attribute as long as you remember to qualify each attribute linked via the PersID that is a Foreign Key in the Role table. Note that if you DON'T qualify that join to narrow it, you get a permutation join of EVERY POSSIBLE COMBINATION of attributes in any table that has multiple records per person.
Sometimes by keeping things separate we organize them better. Sometimes, it isn't better at all. I think your case represents overseparation - but I could be wrong! Now, let's be clear - this is YOUR problem to solve. We can only suggest solutions, and if you have a business reason to not take a suggestion, so be it.