"Um beija-flor" se refere ao pássaro beija-flor, e não à flor que o pássaro "beija".
"Pássaro" é um substantivo masculino.
Portanto, seria "um beija-florzinho", um pequeno beija-flor.
Só poderia ser "beija-florzinha" se:
"beija-florzinha" for separado, como em "Esse beija-flor beija florzinhas" (um beija-flor, de dimensões normais, que beija flores pequenas).
fosse o nome de uma espécie de beija-flor especializado em flores pequenas, como o Jacinto disse.
o beija-flor for fêmea, "A beija-florzinha voou para longe".
Edit
Sobre o seu update acerca de "guarda-chuvinha" vs "guarda-chuvinho":
No português, o diminutivo na maioria dos substantivos pode ser tanto com "-zinho" quanto com "-inho". Guarda-chuva pode ser tanto "guarda-chuvinha" quanto "guarda-chuvazinho".
O diminutivo com -zinho sempre segue o gênero do mesmo, ou seja, "guarda-chuvazinho" é masculino porque guarda-chuva é de gênero masculino, a não ser que talvez em alguma fábula exista uma guarda-chuva fêmea. Do mesmo modo funciona beija-florzinho. Um exemplo de substantivo feminino: parede. Paredezinha é de gênero feminino porque parede é de gênero feminino.
Essa diferença de gêneros entre os diminutivos também acontece com outras palavras, como "tema": "teminha" e "temazinho". "Temazinho" porque "tema" é masculino.
Fonte