Olá André! Você poderia sim colocar todas essas funcionalidades dentro de um único h2 sem problemas. O fato de separar em vários h2 ou colocar em um único h2 não deve interferir no funcionamento das propriedades.
O que interfere é a ordem em que elas são colocadas, pois uma pode sobrepor a outra. Exemplo:
h2{
background-color: #B3A742; // linha 1
background:-webkit-linear-gradient(left,#B3A742, #C7BE9B 90%); // linha 2
}
Aqui, a linha 2 sobrepõe a linha 1 caso o navegador trabalhe com gradiente. Fazemos isso, pois caso o usuário utilize um navegador que não suporte essa propriedade ele teria a linha 1 sendo utilizada e a linha 2 ignorada. Agora, veja a diferença:
h2{
background:-webkit-linear-gradient(left,#B3A742, #C7BE9B 90%); // linha 2
background-color: #B3A742; // linha 1
}
Invertendo as posições a que sempre será utilizada é a linha 1, pois mesmo um navegador reconhecendo a propriedade gradiente ele também reconhece a propriedade background-color e, como essa linha vem depois, é essa que ele irá renderizar na página.
Agora, o fato de você fizer isso assim:
h2{
background-color: #B3A742; // linha 1
background:-webkit-linear-gradient(left,#B3A742, #C7BE9B 90%); // linha 2
}
Ou assim:
h2{
background-color: #B3A742; // linha 1
}
h2{
background:-webkit-linear-gradient(left,#B3A742, #C7BE9B 90%); // linha 2
}
Não interfere em nada em como o navegador vai exibir sua página.
Pelo código que você postou acima, percebi que em algumas linhas você não colocou o ponto e vírgula (;). Isso faz com que esta linha não seja interpretada. Talvez seja isso que esteja ocorrendo quando você faz as mudanças. Testa aí e nos dê uma alô!
Abraços e sucesso nos estudos!