Io fare così:
Partire dalle persone, collego alle persone le varie attività passando per la tabella di raccordo (personeattivita) e poi resta da collegare l'ufficio.
Il problema sta proprio nell'ultimo passaggio (come sottolinei anche tu) perché manca una relazione tra persone e uffici. Non hai una tabella che relaziona gli uffici con le persone che lo compongono?
In sostanza manca la relazione che definisce l'afferenza delle persone agli uffici.
Con le relazioni che hai a disposizione non riesci a rendere univoco il rapporto tra persona e ufficio perché manca questa informazione e quindi mettendo in join "giustamente" si ripete il record in ragione del fatto che l'attività è su più uffici anche se tu sai (manca però la tabella che lo dica) che una persona è di un certo ufficio e non anche dell'altro.
come posso risolvere? metto nella tabella personeattivita la chiave esterna idufficio?