To translate your relationships into a notation that I prefer to use, you have:
Family-----<Parent----<Child----<GrandChild (----< means "one to many" )
What you have encountered is the fact that fields in a portal evaluate first from the context of the layout's table occurrence and then works down from there to the portal. Thus the fields from Parent all show the first related Parent record---just as though you didn't place this field in the portal at all.
Create a new occurrence of Parent by selecting it in Manage | Database | Relationships and clicking the duplicate button. (Two green plus signs)
Do the same to create a new occurrence of GrandChild. Then link them to Grand child like this:
Family-----<Parent----<Child----<GrandChild>-----Child 2>------Parent 2
Link them with the same match fields as you have defined in your original relationships.
If you then refer to fields from Child 2 and Parent 2 in your portal to GrandChild, you'll see the correct values appear in the portal.