Faits :
A.
A.a. Par jugement du 5 mai 2014, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a reconnu X._ coupable d'actes d'ordre sexuel avec des enfants, de contrainte sexuelle et de viol; il l'a condamné à une peine privative de liberté de trois ans et demi, sous déduction de deux cent nonante et un jours de détention avant jugement. Le prévenu a également été condamné à payer des indemnités de réparation morale de 15'000 fr. et 10'000 fr. à A._ et B._.
A.b. Par jugement du 30 septembre 2014, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel de X._ et admis l'appel joint du Ministère public, confirmant la culpabilité de X._ et le condamnant à une peine privative de liberté de quatre ans et demi.
A.c. Par jugement du 17 août 2015, la Cour d'appel pénale du Tribunal cantonal a déclaré irrecevable la demande de révision présentée par X._ le 21 juillet 2015.
A.d. Par arrêt du 22 février 2016 (6B_22/2015), après avoir suspendu la procédure jusqu'à droit connu sur la demande de révision cantonale, la Cour de droit pénal du Tribunal fédéral a déclaré irrecevable le recours interjeté par X._ à l'encontre du jugement de la Cour d'appel pénale du 30 septembre 2014.
B.
Par acte du 15 janvier 2019, X._ a déposé une nouvelle demande de révision du jugement de la Cour d'appel pénale du 30 septembre 2014. A l'appui de sa requête, il a produit un courrier du 17 octobre 2018 adressé par A._ au " Procureur de la République du Tribunal de grande instance de Morat/Murten ". Le Tribunal de l'arrondissement du Lac était en effet saisi d'une cause similaire opposant A._ à X._ pour des faits similaires à ceux traités dans le cadre de l'affaire vaudoise. Ce courrier a la teneur suivante (sic) : " Moi, Madame, A._ nee en 1999, je retire toutes les accusations contre monsieur X._ domicilier a C._. Je retire les faits qui sait passe entre l annee 2012 et l annee 2015. J aimerais m'excuser au prêt du tribunal et de la Police le fait d avoir mentis sur le fait de l abus en vaire moi et ma soueurs je regrette et m excuse car j etais jeune et avait peur de certaine chose. En vous remercians de l attentions que vous porterez a ma lettre, je vous souhaite mes meilleurs salutations ".
Les parties ont été invitées à se déterminer sur la demande de révision et X._ a reçu copie de leurs observations.
Par jugement du 2 mai 2019, la Cour d'appel pénale a rejeté la demande de révision formée par X._.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre le jugement de la Cour d'appel pénale du Tribunal cantonal du canton de Vaud du 2 mai 2019. Il conclut, avec suite de frais et dépens, principalement à l'annulation du jugement attaqué et à la révision du jugement de la Cour d'appel pénale du Tribunal cantonal du canton de Vaud du 30 septembre 2014 sur la base du nouvel élément de preuve produit, subsidiairement à l'annulation du jugement attaqué et au renvoi de la cause à l'autorité de première instance pour nouvelle décision. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
1.1. La procédure du rescindant instituée par le CPP se déroule, en principe, en deux phases, à savoir un examen préalable de la recevabilité (art. 412 al. 1 et 2 CPP) et un examen des motifs invoqués (art. 412 al. 3 et 4 et 413 CPP). Il s'agit de deux étapes d'une seule et même procédure, pour laquelle la juridiction d'appel est compétente (art. 412 al. 1 et 3 CPP).
Aux termes de l'<ref-law>, la juridiction d'appel n'entre pas en matière sur la demande de révision si celle-ci est manifestement irrecevable ou non motivée ou si une demande de révision invoquant les mêmes motifs a déjà été rejetée par le passé. Si la juridiction d'appel entre en matière sur la demande, elle invite les autres parties et l'autorité inférieure à se prononcer par écrit (<ref-law>). Elle détermine les compléments de preuve à administrer et les compléments à apporter au dossier et arrête des mesures provisoires, pour autant que la décision n'incombe pas à la direction de la procédure en vertu de l'art. 388 (<ref-law>). Si elle constate que les motifs de révision ne sont pas fondés, elle rejette la demande de révision (<ref-law>).
1.2. En l'espèce, la demande de révision a été rejetée en vertu de l'<ref-law>. Cette décision met un terme à la procédure de révision. Elle constitue donc une décision finale au sens de l'<ref-law>, contre laquelle le recours en matière pénale au Tribunal fédéral est ouvert.
2.
2.1. L'<ref-law> permet à toute personne lésée par un jugement entré en force d'en demander la révision s'il existe des faits ou des moyens de preuves qui étaient inconnus de l'autorité inférieure et qui sont de nature à motiver l'acquittement ou une condamnation sensiblement moins sévère du condamné.
Les faits ou moyens de preuves invoqués doivent ainsi être nouveaux et sérieux. Les faits ou moyens de preuves sont nouveaux lorsque le juge n'en a pas eu connaissance au moment où il s'est prononcé, c'est-à-dire lorsqu'ils ne lui ont pas été soumis sous quelque forme que ce soit (<ref-ruling> consid. 5.1.2 p. 66 s.). Ils sont sérieux lorsqu'ils sont propres à ébranler les constatations de fait sur lesquelles se fonde la condamnation et que l'état de fait ainsi modifié rend possible un jugement sensiblement plus favorable au condamné (<ref-ruling> consid. 5.1.4 p. 68; <ref-ruling> consid. 1 p. 73).
Savoir si l'autorité cantonale s'est fondée sur une juste conception de faits ou de moyens de preuves nouveaux et sérieux et si la modification, le cas échéant, de l'état de fait sur lequel repose la condamnation est de nature à entraîner une décision plus favorable au condamné relève du droit. En revanche, déterminer si un fait ou un moyen de preuve était effectivement inconnu du juge relève de l'établissement des faits. Il en va de même de la question de savoir si un fait ou un moyen de preuve nouveau est propre à modifier l'état de fait retenu, puisqu'elle relève de l'appréciation des preuves, étant rappelé qu'une vraisemblance suffit au stade du rescindant (ATF <ref-ruling> consid. 1 p. 73; plus récemment arrêts 6B_324/2019 du 24 avril 2019 consid. 3.2; 6B_215/2019 du 15 mars 2019 consid. 2.2).
2.2. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (<ref-law>), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (<ref-ruling> consid. 2.3.1 p. 244). Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire (<ref-ruling> consid. 2.4 p. 368 et les références citées).
3.
3.1. Selon le jugement attaqué, la Cour d'appel pénale s'était fondée sur d'autres éléments que les seules déclarations de l'intimée, considérées comme fiables, pour fonder sa conviction quant à la culpabilité du recourant, en particulier les accusations portées par la soeur de l'intimée, B._, à l'encontre du prénommé. Les deux soeurs avaient en outre constamment confirmé leurs accusations à leurs voisins, à leur mère, à l'éducatrice, au psychiatre, ainsi qu'à la gynécologue. Le recourant avait par ailleurs admis une partie des faits, reconnaissant ainsi que les accusations des fillettes n'étaient pas totalement mensongères. Il avait multiplié les versions, au point que l'expert psychiatre avait noté ces revirements " à répétition ". De plus, la lettre rédigée par l'intimée mentionnait que les fausses accusations porteraient sur des faits qui se seraient déroulés entre l'année 2012 et l'année 2015. Or le recourant contestait justement en appel que ses agissements aient commencé avant avril 2012, quand bien même il avait finalement été condamné par la Cour d'appel pénale pour des faits commis dès 2010. Le fait que la rétractation épouse la version du recourant sur ce point laissait également songeur. Enfin, le conseil de l'intimée avait soulevé l'équilibre psychologique fragile de celle-ci, renforcé par le fait qu'elle allait bientôt devenir mère. Il expliquait que le souhait de sa cliente était de mettre un terme définitif aux procédures pénales, qui se rallongeaient en raison des multiples recours interjetés par le recourant.
La cour cantonale d'en conclure que le courrier produit par le recourant ne constituait pas une preuve sérieuse propre à ébranler les constatations de fait sur lesquelles se fondait la condamnation.
3.2. Il n'est pas contesté que la lettre produite par le recourant constitue un élément nouveau, ou encore que son auteur soit bien l'intimée, de sorte que les arguments présentés par le recourant sur ces points sont sans objet.
En ce qui concerne le caractère sérieux du moyen de preuve, le recourant fait valoir que la lettre a été rédigée librement par l'intimée dans la mesure où lui-même n'a plus de contact avec elle, que l'intimée n'a d'autre raison d'avoir écrit cette lettre que de vouloir se repentir d'avoir menti, que sa parole ne devait pas être considérée comme fiable seulement lorsqu'elle portait des accusations à son encontre, qu'il avait été condamné principalement en raison des accusations de l'intimée, laquelle présentait pourtant un profil psychologique particulier, et qu'il avait certes admis certains faits mais jamais les accusations relatives aux infractions de viol et de contrainte sexuelle.
3.3. Le recourant se limite essentiellement à présenter sa propre appréciation de la pièce en question. Il en va ainsi, notamment, lorsqu'il affirme que l'intimée a écrit cette lettre pour s'excuser et se rétracter, alors que la cour cantonale a retenu, sur la base des explications du conseil de l'intimée, que celle-ci l'avait fait dans l'espoir de mettre un terme aux procédures qui duraient depuis longtemps et de tourner définitivement la page à l'approche de la naissance de son premier enfant. Dans la mesure où le recourant se fonde sur des faits qu'il invoque librement, son argumentation est appellatoire, partant irrecevable.
L'appréciation de l'autorité précédente échappe au demeurant à la critique. En effet, le fait que la lettre de l'intimée tende au retrait de l'ensemble des accusations contre le recourant alors que celui-ci, après avoir présenté de multiples versions, a finalement reconnu une partie des faits reprochés (il n'a plus contesté les attouchements, mais seulement l'acte de pénétration et, plus généralement, le recours à la contrainte), suffisait déjà à faire admettre que le contenu de cette lettre était sujet à caution. Il était en outre pertinent de tenir compte du fait que la condamnation du recourant ne reposait pas uniquement sur les déclarations de l'intimée, mais également sur celles de sa soeur cadette B._, et que les deux soeurs avaient alors constamment confirmé leurs accusations auprès de nombreuses personnes. Enfin, la lettre en question ne visait que les faits commis à partir de 2012, alors que la période pénale retenue débutait en 2010.
Compte tenu du contenu de la lettre au regard des moyens de preuve qui ont conduit à la condamnation du recourant et des déterminations de l'intimée sur la demande de révision, la cour cantonale, qui n'a pas méconnu non plus la notion de faits et moyens de preuve sérieux au sens de l'<ref-law>, pouvait, sans arbitraire, retenir que la lettre de rétractation dont se prévalait le recourant n'apparaissait pas, même sous l'angle de la vraisemblance, suffisamment crédible pour remettre en question les constatations sur lesquelles reposait sa condamnation.
3.4. Pour les mêmes motifs, la cour cantonale pouvait, par une appréciation anticipée non arbitraire (<ref-ruling> consid. 3.1.3 p. 435; <ref-ruling> consid. 3.3 p. 64), renoncer à l'administration d'autres preuves au stade du rescindant, telle que l'audition de l'intimée.
4.
Le recourant invoque la violation de son droit d'être entendu au motif qu'en rejetant le nouveau moyen de preuve pertinent offert, la cour cantonale l'a privé d'une procédure de révision à laquelle il avait droit.
En tant qu'il considère que l'interprétation de la lettre du 17 octobre 2018 effectuée par la cour cantonale viole son droit d'être entendu (art. 29 Cst.), son grief n'a pas de portée propre et se confond avec celui d'arbitraire traité ci-avant.
5.
Mal fondé, le recours doit être rejeté dans la mesure où il est recevable. Comme les conclusions du recours étaient dépourvues de chances de succès, l'assistance judiciaire ne peut être accordée (<ref-law>). Par conséquent, le recourant, qui succombe, supportera les frais judiciaires (<ref-law>), dont le montant sera toutefois fixé en tenant compte de sa situation financière qui n'apparaît pas favorable.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 22 août 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy