Person::Family Position only refers to the first related record and this is why your calculations won't work as written.
Why not put a text field in the join table and use it to designate specific members of the family as "head" and "spouse"? That way, a person can be the head of one family and a child in another, but perhaps you don't need that type of flexibility here.
What you need is either a filtered portal (FileMaker 11) or a filtered relationship (older versions) to display the "Head", "Spouse" names.
With filtered portals, you add one row portals to your layout and use filter expression such as:
Person::Family Position = "Head"
and then put Person::First Name in the portal's row. (The portal's boundaries can be made invisible so that this looks like any other field on your layout.)
If you are not using FileMaker 11, let me know and I'll describe a way to use a relationship that only links to the "Head" of the family.
Bingo! That'll work well.