И вообще надо ли задавать фиксированную высоту блокам?
Зависит от макета и задумки дизайнера.
В большинстве случаев желательно обходится без указания высоты или задавая минимальную/максимальную.
Но как решить данную проблему?
Если header должен быть именно 100vh, то и размер шрифта пересчитать в единицы измерения связанные с вьюпортом. (Только обязательно проверяйте на больших и маленьких размерах окна, обычно там нужно менять размеры через media, чтобы не получить гигантов и мини-карликов)