Can you post a URL so we can have a look at the problem?
Styles are applied in CSS in response to applying a set of rules of inheritance and specificity, within the cascade. It's actually simpler than it sounds, but people coming to it for the first time often find it a bit confusing.
In this case I can't give specific reasons because I can't see the problem or the code, but let's say you altered a rule the was simply, as you say:
#header h1 {display: none;}
If there was another rule elsewhere that varied even slightly from this, for instance like this:
div#header h1 {display: block}
... it would take precedence because it is more specific.
What's more, if there was a rule later on in the style sheet after the rule that you altered, that had exactly the same specificity as the rule you altered, it would take precedence because it was later in the cascade.
However, also in general terms, in this case I would not hide the h1 element, I'd take it out of the HTML. You'll need to use some PHP code to do that since you don't want to eliminate it from all your pages, it seems. To do it, you'll just need to identify the PHP file that is outputting the heading and use some WP conditional tags to not output it on the front page.
As ever, I advise strongly that you do all this in a child theme.
Cheers
PAE