Hmm.. I just tested this and didn't have any issues with portfolio showing as No Value. I did have to use text mode to accomplish it though since Portfolio isn't available as a field to use from the report builder. Perhaps your text mode code has a typo somewhere..
Here's what I used.
Grouping Text Mode:
group.0.linkedname=project
group.0.namekey=view.relatedcolumn
group.0.namekeyargkey.0=project
group.0.namekeyargkey.1=portfolio
group.0.namekeyargkey.2=name
group.0.valuefield=project:portfolio:name
group.0.valueformat=string
textmode=true
Column text mode:
linkedname=project
namekey=view.relatedcolumn
namekeyargkey.0=project
namekeyargkey.1=portfolio
namekeyargkey.2=name
querysort=project:portfolio:name
valuefield=project:portfolio:name
valueformat=HTML