Я так же делал двойной хеш, а так же пробовал получить корень хешированием TXID, но это так же не помогло мне получить нужный результат.
ID транзакций хранятся в little-endian формате, а вот хэшируются в big-endian. После хэширование нужно опять переводить в little-endian. Зачем нужна такая запутанность никто не знает, но так исторически сложилось. В поисковиках и всяких блок эксплорерах поиск обычно производится уже в "перевернутом" формате.