Параметры hashPrevBlock и hashMerkleRoot у вас уже есть. Вы сами собираете заголовок блока из них - нужно склеить шесть строковых параметров, при этом один из них - nonce, его вы генерите самостоятельно, остальное всё уже есть. Нужно ли менять порядок байтов в отдельных полях, когда склеиваете из них блок - сейчас точно не помню, лучше возьмите рабочий блок и посмотрите, например, у hashPrevBlock в начале должны быть нули. Там приходится менять байты часто, перед каждым хэшированием и после него, но когда именно, лучше уточните самостоятельно, чтобы не запутаться и не ошибиться, потому что это один раз прописывается и забывается. Когда я писал программу, работающую с заголовком, информации в сети ещё было мало об этом, я просто брал из blockexplorer готовый блок, и смотрел переворачивают они там или нет, сейчас может где-то есть в сети уже информация точная. Такие вещи лучше уточнять по спецификации. Когда заголовок соберёте - тогда точно перед каждым хэшированием нужно менять байты.