Now here's where I got confused, Miners have to guess this number to find a compatibility hash for the header.....
Not just the nonce. Although that is how it is typically described, other data in the header is also manipulated in order to change the hash.
how do they get to change the noce in the header since its hashed along with the block-header-dat thought they have different hash
The value of the nonce is completely up to the miner and does not depend on anything else. So, if one value doesn't work, then another is tried. Typically, the nonce starts a 0 and it is incremented until a qualifying hash is found or all the possible nonces have been tried. If all the nonces have been tried, then something else in the header is changed and the nonce starts back at 0. This process keeps going until a block header that has a qualifying hash is found.