Co to znaczy, że dostaje złe referencje...? Nie rozumiem. Nie rozumiem również czegoś w Twoim kodzie.
Spójrz:
// nagłówek f-cji dump()
void dump(iostream &s, header *meta);
a dalej, w funkcji main():
ofstream myFile;
// ...
dump(instream& myFile, meta); // ?
Wytłumaczysz, co chciałeś zrobić z pierwszym argumentem dump(), bo nie do końca rozumiem...?