I think you are confusing different things:
The string you have pasted 000000000000000000000000000000000000000000000000000000174876e80000... are the parameters that were used to invoke the constructor of the contract.
The data parameter is passed to the contract. The contract can interpret it in any way he wants. But usually solidity contracts follow the ...
You can find the go implementation of the header struct here. It could be implemented in different languages differently depending on the corresponding programming patterns. However it should match the specs in the Ethereum yellow paper.