Faits :
A.
D._ est propriétaire de la parcelle de la commune d'Yvorne, colloquée en « zone du village et des hameaux », selon un plan d'extension partiel (PEP) approuvé par la municipalité le 27 août 1973 et par le Conseil d'Etat du canton de Vaud le 21 juin 1974. Ce terrain est promis à la Société A._ qui compte y construire plusieurs nouveaux bâtiments d'habitation, comportant au total 50 logements de 2 à 4 pièces, deux places de jeux et 102 places de stationnement (35 places comme garages au rez-de-chaussée des bâtiments, 16 places comme boxes et 51 places comme places à l'extérieur non couvertes).
Cinq demandes de permis de construire ont été déposées le 20 novembre 2014. Chaque demande implique deux éléments de cinq appartements, accolés du côté d'une façade pignon, présentant à chaque fois un décrochement de 1 m entre les deux éléments.
L'enquête publique a suscité notamment les oppositions de B._, C._ et E._, propriétaires de parcelles voisines.
B.
Par cinq décisions du 3 février 2015, la Municipalité d'Yvorne a délivré les permis de construire. Le même jour, elle a informé les trois propriétaires précités qu'elle avait décidé dans sa séance du 28 janvier 2015 de lever leurs oppositions. Les opposants ont interjeté ensemble un recours auprès de la Cour de droit administratif et public du Tribunal cantonal. Par arrêt du 22 novembre 2016, après avoir notamment procédé à une visite des lieux le 29 avril 2016, la cour cantonale a admis le recours et annulé les décisions de la municipalité octroyant les permis de construire et levant les oppositions. Elle a en substance considéré que le projet prévoyait 10 logements par bâtiment, ce qui était contraire à l'art. 57 al. 2 du règlement communal sur le plan d'affectation et la police des constructions (RPAPC), qui limitait à cinq le nombre de logements par bâtiment. Elle a en outre considéré que le projet ne respectait pas la réglementation communale en matière d'ouvertures en toiture et a laissé plusieurs autres questions indécises, les autorisations devant quoi qu'il en soit être annulées.
C.
Agissant par la voie du recours en matière de droit public, la Société A._ demande au Tribunal fédéral de réformer l'arrêt cantonal en ce sens que les décisions communales accordant les permis de construire et levant les oppositions sont confirmées. Subsidiairement, elle conclut à l'annulation de l'arrêt attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants.
E._ indique se retirer de la procédure.
La cour cantonale se détermine sur les griefs exposés dans le recours. La Direction générale de l'environnement se prononce brièvement sur un aspect du recours et renvoie à la procédure cantonale pour le surplus. La commune d'Yvorne s'en remet à la justice quant à l'issue du recours. L'ECA n'a aucune observation à formuler sur le recours.
B._ et C._ se déterminent et concluent au rejet du recours. D._ dépose des observations et conclut à l'admission du recours.
La DGE dépose des observations complémentaires. La recourante réplique et persiste dans ses conclusions.

Considérant en droit :
1.
Le recours est dirigé contre un arrêt rendu en dernière instance cantonale annulant des autorisations de construire. Le recours est dès lors en principe recevable comme recours en matière de droit public selon les <ref-law>, aucune des exceptions prévues à l'<ref-law> n'étant réalisée. La recourante a pris part à la procédure devant l'autorité précédente. Constructrice du projet litigieux sur une parcelle qui lui a été promise vendue, elle est particulièrement touchée par l'arrêt attaqué. Elle a ainsi un intérêt digne de protection à son annulation ou sa modification et dispose dès lors de la qualité pour recourir au sens de l'<ref-law>.
Les autres conditions de recevabilité sont réunies si bien qu'il y a lieu d'entrer en matière sur le recours.
2.
La recourante se plaint d'arbitraire dans l'application du règlement communal.
Sous réserve des cas visés à l'art. 95 let. c à e LTF, la violation du droit cantonal ou communal ne constitue pas un motif de recours. Il est néanmoins possible de faire valoir que l'application des dispositions cantonales consacre une violation d'une norme de droit fédéral au sens de l'<ref-law>, telle que l'art. 9 Cst. garantissant la protection contre l'arbitraire (<ref-ruling> consid. 2.2 p. 69; <ref-ruling> consid. 3 p. 351). Appelé à revoir l'application faite d'une norme cantonale ou communale sous l'angle de l'arbitraire, le Tribunal fédéral ne s'écarte de la solution retenue que si celle-ci apparaît insoutenable ou en contradiction manifeste avec la situation effective, ou encore si elle a été adoptée sans motifs objectifs et en violation d'un droit certain. En outre, il ne suffit pas que les motifs de la décision critiquée soient insoutenables, encore faut-il que cette dernière soit arbitraire dans son résultat. Si l'application de la loi défendue par l'autorité cantonale ne se révèle pas déraisonnable ou manifestement contraire au sens et au but de la disposition ou de la législation en cause, cette interprétation sera confirmée, même si une autre solution - éventuellement plus judicieuse - paraît possible (<ref-ruling> consid. 2.1 p. 168; <ref-ruling> consid. 4.3 p. 319; <ref-ruling> consid. 6.1 p. 379).
Les griefs de violation du droit cantonal sont soumis à des exigences de motivation accrues (<ref-law>).
3.
La recourante considère que la cour cantonale a fait un amalgame entre les notions - distinctes au sens du règlement communal - de "bâtiment" et de "construction". L'art. 57 al. 2 RPAPC limitant le nombre de logements à cinq par bâtiment ne s'opposerait selon elle pas au projet, celui-ci prévoyant cinq logements par bâtiments accolés par deux en cinq constructions distinctes. La recourante fonde son argumentation pour l'essentiel sur la terminologie des art. 6 et 57 al. 2 RPAPC.
3.1. Le RPAPC contient notamment les dispositions suivantes:
Art. 6 - Constructions jumelées et contiguës
La contiguïté peut être autorisée si les conditions suivantes sont réunies:
a) l'ensemble des bâtiments est considéré comme une seule construction,
b) les bâtiments qui composent l'ensemble sont édifiés simultanément et présentent un caractère architectural homogène.
Art. 57 - Constructions non contiguës
Le coefficient d'utilisation du sol (CUS) ne peut excéder 1⁄2 (0,5).
Le nombre de logements par bâtiment est limité à cinq, y compris les studios.
3.2. Se référant à diverses dispositions du règlement communal, la cour cantonale a constaté que celui-ci entend proscrire les constructions dépassant cinq logements et préserver le caractère villageois de son tissu bâti, que le secteur dont il est question ne présente pas de construction contenant plus de cinq logements et que la forme des parcelles, longues et étroites, ne laisse pas penser que le planificateur communal ait eu l'intention de permettre des constructions contiguës, une telle configuration n'étant pas possible sur les autres terrains. Elle a en outre considéré que, selon l'esprit du règlement, des constructions jumelées devaient être limitées à ce qu'il est possible de faire pour une seule construction (soit cinq logements), accoler deux éléments de cinq logements allant au-delà de ce que le règlement conçoit au titre de constructions jumelées. Dans l'ensemble, la cour cantonale a jugé qu'autoriser dix logements sous la forme de deux éléments de cinq logements accolés reviendrait à contourner la règle de l'art. 57 al. 2 RPAPC. Enfin, la cour cantonale a estimé que l'art. 6 RPAPC ne permettait pas plus d'autoriser le projet litigieux, puisque cette disposition prévoit précisément que des bâtiments contigus doivent être considérés comme une seule construction. En ce sens, traiter les paires d'éléments accolés comme un seul bâtiment revient à limiter à cinq le nombre de logements qu'un ensemble peut comporter, de sorte que le projet prévoyant dix logements par ensemble devait être annulé.
La constructrice fait au contraire valoir que l'art. 6 RPAPC serait déterminant pour juger le projet litigieux comme conforme à la réglementation communale. Selon elle, cette disposition distingue clairement la notion de "bâtiment" de la notion de "construction". Vu les termes utilisés à l'art. 6 RPAC ("la contiguïté peut être autorisée si l'ensemble des bâtiments est considérée comme une seule construction"), les paires de bâtiments accolés du projet litigieux constitueraient une seule construction. L'art. 57 al. 2 RPAPC limitant à cinq le nombre de logements par bâtiment - et non par construction -, le projet, fait de constructions constituées de paires de bâtiments accolés comportant chacun cinq logements, serait conforme au règlement communal.
Par cette argumentation, la recourante présente sa propre interprétation du règlement communal qu'elle oppose à celle de la cour cantonale. Elle ne démontre toutefois pas que le raisonnement suivi par les premiers juges serait insoutenable. Elle se contente de prétendre que sa compréhension du texte légal est la seule qui puisse être retenue. Or, pour cela, elle s'appuie uniquement sur les termes utilisés à l'art. 6 RPAPC pour affirmer que les notions de construction et de bâtiment sont bien définies et ont un sens propre, au contraire de ce que retient l'arrêt attaqué. Ce faisant, elle fait toutefois abstraction du simple titre de la disposition qui, pourtant, rend vaine son interprétation du terme construction. En effet, l'art. 6 RPAPC est intitulé " constructions jumelées et contiguës", et non bâtiments jumelés et contigus, ce qui contredit les explications de la recourante pour qui des bâtiments contigus formeraient une construction selon une terminologie spécifiquement choisie par le législateur communal. Cet élément suffit à lui seul à corroborer l'appréciation de la cour cantonale selon laquelle les termes en question sont utilisés indistinctement dans le règlement. A cela s'ajoute, en dépit des exigences de motivation accrues dans le cadre d'un grief de violation du droit cantonal, que la recourante ne revient pas sur l'analyse complète et détaillée du règlement à laquelle procèdent les considérants de l'arrêt attaqué pour parvenir à une telle conclusion. En définitive, la recourante ne fait que mettre en avant l'une des interprétations possibles du règlement, sans démontrer en quoi il s'agirait de la seule qui soit soutenable ni en quoi celle de la cour cantonale - particulièrement étayée - ne le serait pas.
Enfin, on ne voit pas en quoi les spécificités de la parcelle litigieuse devraient justifier des possibilités de construire qui lui soient seules applicables à l'exclusion des autres terrains des secteurs. De ce point de vue, le raisonnement de la cour cantonale n'est pas entaché d'arbitraire.
Le grief est ainsi mal fondé. C'est dès lors sans arbitraire que la cour cantonale, jugeant le nombre de logements par bâtiment deux fois trop élevé, a annulé les autorisations de construire litigieuses. Il n'y a par conséquent pas lieu d'examiner les autres griefs que fait valoir la recourante, ses conclusions devant en tout état être rejetées.
4.
Vu ce qui précède, le recours doit être rejeté et l'arrêt attaqué confirmé. La recourante, qui succombe, s'acquittera des frais de justice (<ref-law>). Elle versera en outre des dépens aux intimés B._ et C._, qui ont agi par l'intermédiaire d'un avocat (<ref-law>). Quant à l'intimé D._, propriétaire, il a conclu à l'admission du recours sans cependant que ses écritures ne donnent lieu à des déterminations des intimés B._ et C._; il sera dès lors dispensé de verser des dépens à ces derniers. La commune, qui a agi dans l'exercice de ses attributions officielles, n'a pas droit à des dépens (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge de la recourante.
3.
Une indemnité de dépens de 3'000 fr. est accordée aux intimés, solidairement entre eux, à la charge de la recourante.
4.
Le présent arrêt est communiqué aux mandataires des parties, de la Municipalité d'Yvorne et de D._, à la Direction générale de l'environnement du canton de Vaud (DGE-DIRNA), au Tribunal cantonal du canton de Vaud, Cour de droit administratif et public et à l'Etablissement d'assurance contre l'incendie et les éléments naturels du canton de Vaud (ECA).
Lausanne, le 14 février 2018
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Merkli
La Greffière : Sidi-Ali