Regarding black hair, maybe Vegeta doesn't know about genetics. All full saiyans have black hair, Gohan has black hair, so he just figures that's how it always is. It could be the saiyan black hair is a dominant allele amongst saiyans, but is not dominant to the human allele Bulma had.
It could their chromosomes work differently, though it can't be too different as they have to be similar enough to procreate with humans.
For example the following potential scenario:
They may have one separate allele only for hair colour, which is always black. It's found in saiyan female gametes, with no corresponding male equivalent to pair with. We'll call it an H-band. It is a link of DNA that is not paired. The male and female also have another hair gene in their pairing chromosomes, but this is for light hair always. It codes for light hair (low in melanin) but the H-band codes for an increase in hair melanin, resulting in dark hair (indeed in humans, the difference between blonde hair and brown hair is that brown hair has more melanin, and black hair more than brown. There is no blonde melanin - the colour is just the result of a lack of melanin. Likewise a person with black hair could have more of the red melanin (there are two melanin found in human hair - one brown and one red) than a red-headed person, but they still have black hair because they have so much of the brown melanin that the red doesn't show, even though the melanin is there. Similar to how one litre of blue paint would look more blue than two litres of blue paint mixed with 10 litres of black paint). So when two saiyans produce offspring, it always results in black hair, due to the H-band.
However, when a saiyan male and human female produce offspring, there is no H-band, so no high levels of hair melanin. The male saiyan'a hair gene codes for light hair. However, Chi Chi and Videl have black hair. This allele could be dominant, causing the child to have black hair. But Bulma has light hair, so it combines with Vegeta's hair allele to produce light hair.