My gut feeling tells me that "Es gibt..." is used in more abstract contexts while "Es sind..." refers to specific situations.
"Es gibt viele Blumen im Garten." seems more like a general statement about the location of flowers and the structure of gardens.
"Es sind viele Blumen im Garten." sounds like the description of a specific garden that the speaker/writer has in mind.
Regarding the living room example the sentence "Es gibt viele Leute, die im Wohnzimmer tanzen." is not at all equivalent to "Es tanzen viele Leute im Wohnzimmer.".
The first sentence is a statement about general behavior of people - there are a lot of people who use to dance in the living room. (Also note that "viele Leute" has a slightly different meaning in this context - it does not refer to a number of people in one living room but rather to a signifcant part of the population.)
While the second sentence may be used to express the same idea, it would be a rather unusual phrasing. "Es tanzen viele Leute im Wohnzimmer." sounds like the description of a specific situation in a specific living room (e.g. "There are currently many people dancing in that living room over there.").