I've tried hashing that original block header but can't seem to get the corresponding hash that's recorded.
I must be missing something.
There are two very common mistakes. Make sure you aren't making either of these before you waste a lot of time trying to figure out what else you might be missing.
First common mistake:
SHA-256 is calculated on the header, then SHA-256 is calculated on that result. If you are only calculating the hash of the header, and not calculating the hash of the hash result, then you aren't going to get the right result.
Second common mistake:
Frequently people will make the mistake of storing the result of the first SHA-256 of the header as a string representation of the hex value. Then try to calculate the second SHA-256 on this string instead of on the actual bytes. A hex value of A is equivalent to a binary value of 1010, but the hex value of the string "A" (if represented in ASCII) is 01000001.