Faits :
A.
Par jugement du 8 mars 2021, le Tribunal correctionnel de l'arrondissement de Lausanne a constaté que A._ s'était rendu coupable de traite d'êtres humains qualifiée, blanchiment d'argent et incitation à l'entrée et au séjour illégal et l'a condamné à une peine privative de liberté de 4,5 ans, sous déduction de 390 jours de détention avant jugement, et à une peine pécuniaire de 180 jours-amende à 30 fr. le jour. Il a ordonné le maintien de A._ en détention pour des motifs de sûreté et a dit qu'il était le débiteur de B._ de la somme de 25'000 fr. à titre de tort moral et de D._ de la somme de 25'000 fr. à titre de tort moral. Le tribunal a en outre ordonné la confiscation et le maintien au dossier du téléphone portable de A._ et des extractions de celui-ci.
B.
Par jugement du 11 juin 2021, la Cour d'appel pénale du Tribunal cantonale du canton de Vaud a rejeté l'appel de A._ et a confirmé le jugement du 8 mars 2021.
Il en ressort les faits suivants:
B.a. A._ est né en 1971 au Nigeria, pays dont il est ressortissant. Après avoir exercé le métier de mécanicien sur voitures pendant quatre ans, il aurait quitté le Nigeria en 2004 pour se rendre en Espagne, où il aurait travaillé dans la construction. Il serait arrivé en Suisse en 2009, mais aurait été expulsé, ne bénéficiant pas de titre de séjour valable. Il serait revenu en Suisse en 2012, où il aurait vécu chez son frère à V._. Il se serait ensuite établi en France en 2014 ou 2016. Avant son incarcération en 2020, il vivait à W._ avec sa compagne, F._, également ressortissante du Nigeria, et leurs trois enfants. A._ dit qu'il ne travaillait pas, s'occupant des enfants, que sa compagne réalisait un salaire mensuel d'environ 500 euros en tant que femme de ménage et que le couple recevait 700 à 900 euros à titre d'allocations familiales.
Les extraits des casiers judiciaires suisse, français et espagnol de A._ ne comportent aucune inscription.
B.b. Entre 2015 et 2018, A._, agissant de concert avec sa compagne F._ (faisant l'objet d'une procédure distincte), a fait venir des compatriotes du Nigeria, dont les plaignantes B._, née en 2001, et D._, née en 2000, mineures au moment des faits, puis les a contraintes à se prostituer, notamment en Suisse.
Au Nigeria, la mère de F._ s'était chargée de recruter et d'expédier les jeunes femmes en Europe en leur faisant miroiter un travail et/ou des études. Avant leur départ, les jeunes femmes, issues d'un milieu modeste, étaient soumises à un rituel "juju", engagement comprenant notamment le prélèvement de cheveux. Convaincues du pouvoir réel de cette pratique, commune dans le sud du Nigeria, les jeunes femmes étaient persuadées que si elles venaient à désobéir, la rupture du serment leur vaudrait du mal à elles ou à leur famille. Cela a participé à les assujettir à la volonté de A._ et de sa compagne.
Ainsi, partagées entre l'espoir d'une vie meilleure et la peur des représailles liées au "juju", les jeunes femmes ont été amenées du Nigeria au Niger, puis en Libye avant de traverser la Méditerranée pour l'Italie. Dans ce dernier pays, elles ont été prises en charge par A._ et F._. Certaines d'entre elles ont été contraintes de se prostituer en Italie, sous la menace du "juju". Lorsqu'elle a refusé de se prostituer en Italie, B._ a été battue par un homme en lien avec F._.
A._ a joué le rôle de passeur et a pris en charge B._ et D._ pour les conduire en Suisse. Le 31 décembre 2015, il a tenté de faire entrer illégalement D._ et deux autres jeunes filles en Suisse en les accompagnant en car entre X._ et Y._, les jeunes filles ayant pour consigne de ne pas dire que A._ les accompagnait. Toutefois, à l'issue d'un contrôle à la douane suisse, les jeunes filles se sont vues refuser l'entrée en Suisse et ont été renvoyées en Italie. D._ est finalement arrivée en Suisse en train en janvier ou février 2016, accompagnée par F._. Quant à B._, elle est arrivée en Suisse en train depuis la France à une date indéterminée au cours de l'année 2016, accompagnée par A._.
Une fois en Suisse, principalement à Z._, les jeunes filles ont été hébergées par F._ et contraintes de se prostituer, toujours sous la menace du "juju" et sous la surveillance d'une surnommée "G._". D._ était battue par F._ lorsqu'elle refusait de "travailler". Dans les mêmes circonstances, B._ et D._ ont été menacées de mort par F._.
Sur consigne de F._, les jeunes filles indiquaient une fausse identité et une fausse date de naissance - selon laquelle elles étaient majeures - en cas de contrôle par la police. Elles ont été contraintes de remettre leurs gains à des tiers, notamment à "G._", lesquels étaient ensuite remis à F._, sous prétexte de devoir rembourser les frais occasionnés par leur voyage, arbitrairement fixés à 40'000 euros chacune. B._ et D._ ont ainsi respectivement fait remettre à F._ plus de 12'000 fr. et environ 20'000 euros provenant de leur activité de prostitution.
B._ et D._ ont déposé plainte le 20 juin 2018.
Par ailleurs, sept autres jeunes filles nigérianes, également mineures au moment des faits, ont été victimes des agissements de A._ et de sa compagne, mais n'ont pas déposé plainte.
B.c. A._ a envoyé à des bénéficiaires au Nigeria, via des agences de transfert de fonds, l'argent issu de son activité criminelle. Ainsi, il a envoyé un total de 1'105 fr. 70 via l'agence H._ entre le 22 mars 2016 et le 29 avril 2016, ainsi qu'un total de 2'152.25 euros par I._ entre le 19 novembre 2015 et le 4 août 2018.
Entre le 1er février 2016 et le 27 septembre 2016, A._ a réceptionné de trois compatriotes vivant à V._, en Italie et en France, trois envois d'argent via I._ pour des montants totaux de 650 fr. et 715 euros.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 11 juin 2021. Il conclut, avec suite de frais et dépens, principalement à sa réforme en ce sens qu'il est libéré des chefs d'accusation retenus à son encontre, que sa libération immédiate est ordonnée, que le téléphone Samsung J6 lui est restitué et que toutes les extractions sont détruites. Il conclut également à ce que sa demande d'indemnité pour détention injustifiée subie soit admise et qu'un montant de 56'800 fr. lui soit alloué à titre de tort moral. Subsidiairement, il conclut au renvoi de la cause à l'autorité inférieure pour nouvelle décision dans le sens des considérants. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
Le recourant invoque l'arbitraire dans l'appréciation des preuves et l'établissement des faits. Il se plaint en outre de la violation du principe de la présomption d'innocence.
1.1. 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. 1.1 p. 155 s.; <ref-ruling> consid. 2.3.1 p. 244). En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables. Le Tribunal fédéral n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux, dont l'interdiction de l'arbitraire, que s'ils ont été invoqués et motivés de manière précise (<ref-law>; <ref-ruling> consid. 1.3.1 p. 92; <ref-ruling> consid. 1.1 p. 503). Les critiques de nature appellatoire sont irrecevables (<ref-ruling> consid. 1.3.1 p. 92; <ref-ruling> consid. 1.1 p. 156).
Lorsque l'autorité cantonale a forgé sa conviction quant aux faits sur la base d'un ensemble d'éléments ou d'indices convergents, il ne suffit pas que l'un ou l'autre de ceux-ci ou même chacun d'eux pris isolément soit à lui seul insuffisant. L'appréciation des preuves doit en effet être examinée dans son ensemble. Il n'y a ainsi pas d'arbitraire si l'état de fait retenu pouvait être déduit de manière soutenable du rapprochement de divers éléments ou indices. De même, il n'y a pas d'arbitraire du seul fait qu'un ou plusieurs arguments corroboratifs apparaissent fragiles, si la solution retenue peut être justifiée de façon soutenable par un ou plusieurs arguments de nature à emporter la conviction (arrêts 6B_94/2021 du 29 septembre 2021 consid. 1.1; 6B_330/2021 du 15 septembre 2021 consid. 2.1; 6B_1052/2020 du 19 juillet 2021 consid. 1.1).
1.2. La présomption d'innocence, garantie par les <ref-law>, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe "in dubio pro reo", concernent tant le fardeau de la preuve que l'appréciation des preuves au sens large (<ref-ruling> consid. 2.2.3.1; <ref-ruling> consid. 2a). En tant que règle sur le fardeau de la preuve, elle signifie, au stade du jugement, que le fardeau de la preuve incombe à l'accusation et que le doute doit profiter au prévenu. Comme règle d'appréciation des preuves (sur la portée et le sens précis de la règle sous cet angle, cf. <ref-ruling> consid. 2.2.3.3), la présomption d'innocence signifie que le juge ne doit pas se déclarer convaincu de l'existence d'un fait défavorable à l'accusé si, d'un point de vue objectif, il existe des doutes quant à l'existence de ce fait. Il importe peu qu'il subsiste des doutes seulement abstraits et théoriques, qui sont toujours possibles, une certitude absolue ne pouvant être exigée. Il doit s'agir de doutes sérieux et irréductibles, c'est-à-dire de doutes qui s'imposent à l'esprit en fonction de la situation objective. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 1.3.1; <ref-ruling> consid. 1.1).
1.3. Les déclarations de la victime constituent un élément de preuve. Le juge doit, dans l'évaluation globale de l'ensemble des éléments probatoires rassemblés au dossier, les apprécier librement (arrêts 6B_457/2021 du 22 octobre 2021 consid. 1.2; 6B_330/2021 du 15 septembre 2021 consid. 2.3; 6B_1425/2020 du 5 juillet 2021 consid. 1.3 et les références citées), sous réserve des cas particuliers où une expertise de la crédibilité des déclarations de la victime s'impose (cf. <ref-ruling> consid. 2.4 p. 184). Les cas de "déclarations contre déclarations", dans lesquels les déclarations de la victime en tant que principal élément à charge et les déclarations contradictoires de la personne accusée s'opposent, ne doivent pas nécessairement, sur la base du principe "in dubio pro reo", conduire à un acquittement. L'appréciation définitive des déclarations des participants incombe au tribunal du fond (<ref-ruling> consid. 3.3 p. 127; arrêt 6B_330/2021 précité consid. 2.3).
1.4. Le recourant reproche essentiellement à la cour cantonale de s'être exclusivement fondée sur les déclarations des intimées pour établir sa culpabilité. Ce faisant, il perd de vue que les déclarations de la victime constituent un élément de preuve (cf. supra consid. 1.3) et qu'au demeurant, la cour cantonale ne s'est pas fondée exclusivement sur les déclarations concordantes des deux intimées, mais sur un ensemble d'éléments (cf. infra consid. 1.8 et 1.9). Pour le surplus, l'argumentation du recourant consiste avant tout à opposer sa propre appréciation des preuves à celle de la cour cantonale, dans une démarche appellatoire et, partant, irrecevable (<ref-law>). Il ne sera ainsi entré en matière que sur les griefs qui n'apparaissent pas d'emblée irrecevables pour ce motif.
1.5. Le recourant reproche à plusieurs reprises à la cour cantonale d'avoir fondé sa condamnation sur le postulat que F._ était coupable alors qu'elle n'avait pas encore été jugée. Il invoque une violation de la présomption d'innocence, de l'interdiction de l'arbitraire et du droit d'être entendu.
En tant qu'il invoque la violation de la présomption d'innocence de F._, il ne peut être suivi, dès lors qu'en principe, seul le titulaire d'un droit conventionnel dont la violation est alléguée peut invoquer cette violation (cf. arrêt 6B_947/2015 du 29 juin 2017 consid. 8.2). On ne saurait, dès lors, reprocher à la cour cantonale d'avoir violé le droit d'être entendu du recourant en n'examinant pas plus avant son grief déduit de la violation de la présomption d'innocence de F._.
1.6. Le recourant soutient que les déclarations des intimées sont "parfois contradictoires" ou encore que leur version "coïncide de manière suspecte" (recours, p. 11). Ce faisant, il ne démontre pas en quoi l'appréciation des preuves effectuée par l'autorité précédente serait arbitraire, de sorte que son grief est irrecevable. L'argumentation du recourant est également largement appellatoire et, partant, irrecevable dès lors que l'intéressé rediscute librement les déclarations des intimées sans démontrer en quoi la cour cantonale en aurait tiré des conclusions insoutenables. Il en va ainsi par exemple lorsque le recourant conteste, de manière générale, le fait d'appartenir à une organisation criminelle ayant pour but la prostitution de mineurs ou le fait que sa compagne, F._, soit la "mama" des intimées. Il en va de même lorsqu'il soutient que les parties à la procédure ne semblent pas "réellement" croire dans les rituels "juju".
1.7. Le recourant reproche ensuite à la cour cantonale d'avoir retenu que les intimées avaient commencé à travailler comme prostituées dès leur arrivée en Europe alors que les attestations produites en appel confirmeraient qu'elles exerçaient déjà cette profession au Nigeria. Cette argumentation ne saurait être suivie. En effet, la cour cantonale a jugé sans arbitraire que la preuve fournie par le recourant - soit une attestation établie par la cousine de sa compagne, selon laquelle l'intimée 3 exerçait déjà le métier de prostituée au Nigeria - était dépourvue de toute valeur probante puisqu'elle provenait d'un proche de la famille par alliance du recourant. Le grief est donc rejeté dans la mesure où il est recevable.
1.8. Le recourant fait valoir qu'il est arbitraire de retenir que l'intimée 3 a été emmenée en Suisse par lui. Il ressort des faits du jugement attaqué - dont l'arbitraire n'est pas démontré - que, le 31 décembre 2015, le recourant a tenté de faire entrer l'intimée 3 et deux jeunes filles en Suisse, en les accompagnant en car entre X._ et Y._. À l'issue d'un contrôle à la douane suisse, elles se sont vues refuser l'entrée en Suisse et ont donc été renvoyées en Italie. Ainsi, contrairement à ce que semble soutenir le recourant, la cour cantonale n'a pas retenu que l'intimée 3 serait rentrée en Suisse le jour où elle a rencontré le recourant dans le bus de X._ mais seulement qu'elle a fait sa connaissance à X._ et qu'il devait l'amener d'Italie en Suisse. Comme l'a relevé à juste titre la cour cantonale, la version du recourant selon laquelle sa présence dans le bus avec l'intimée 3 entre X._ et la frontière suisse serait fortuite n'est pas crédible. Le grief est rejeté dans la mesure où il est recevable.
Pour le surplus, dans la mesure où le recourant se contente de soutenir que les dates et les lieux ne concorderaient pas, il oppose sa propre appréciation à celle de la cour cantonale, sans démontrer en quoi celle-ci serait arbitraire, de sorte que son argumentation est irrecevable. Il en va de même lorsque le recourant reproche à la cour cantonale de s'être fondée sur les déclarations de l'intimée 2 pour retenir que l'intéressée était venue en Suisse en train depuis la France avec lui et qu'elle s'y était ensuite prostituée pendant environ deux ans.
1.9. Le recourant soutient que le fait que les intimées aient dans leur téléphone portable un numéro en commun, et que ce même numéro ait été retrouvé dans les contacts Facebook du recourant ne permettait pas à la cour cantonale de conclure à sa culpabilité. Or, la cour cantonale n'a pas jugé que cet élément constituait à lui seul une preuve de la culpabilité du recourant, mais a considéré qu'il s'agissait d'un indice, qui, ajouté à d'autres éléments de preuve - dont les déclarations concordantes des intimées -, était de nature à les corroborer. Le recourant ne démontre pas en quoi cette appréciation serait arbitraire. Son grief est dès lors rejeté dans la mesure où il est recevable.
1.10. Au vu de ce qui précède, la cour cantonale n'a pas violé l'interdiction de l'arbitraire ni le principe de la présomption d'innocence en concluant, sur la base notamment des déclarations crédibles des intimées, qu'il n'existait pas de doutes sérieux et irréductibles quant au fait que le recourant avait commis les faits qui lui étaient reprochés.
2.
Le recourant fait grief à la cour cantonale d'avoir arbitrairement retenu qu'il avait envoyé à des bénéficiaires au Nigeria l'argent issu de son activité criminelle. Il fait également valoir une violation du devoir de motivation.
2.1. Le droit d'être entendu implique pour l'autorité l'obligation de motiver sa décision, afin que le destinataire puisse la comprendre, l'attaquer utilement s'il y a lieu et afin que l'autorité de recours puisse exercer son contrôle. Le juge doit ainsi mentionner, au moins brièvement, les motifs qui l'ont guidé et sur lesquels il a fondé sa décision, de manière à ce que l'intéressé puisse se rendre compte de la portée de celle-ci et l'attaquer en connaissance de cause (<ref-ruling> consid. 3.4.3 p. 46; <ref-ruling> consid. 2.1 p. 145). Il n'est pas tenu de discuter tous les arguments soulevés par les parties, mais peut se limiter à l'examen des questions décisives pour l'issue du litige (<ref-ruling> consid. 4.2 p. 157; <ref-ruling> consid. 2.2 p. 183). Dès lors que l'on peut discerner les motifs qui ont guidé la décision de l'autorité, le droit à une décision motivée est respecté, même si la motivation présentée est erronée (<ref-ruling> consid. 3.2.1 p. 565).
2.2. L'<ref-law> réprime notamment celui qui aura commis un acte propre à entraver l'identification de l'origine, la découverte ou la confiscation de valeurs patrimoniales dont il savait ou devait présumer qu'elles provenaient d'un crime.
Les valeurs patrimoniales blanchies doivent provenir d'un crime au sens de l'<ref-law>, soit d'une infraction passible d'une peine privative de liberté de plus de trois ans. En matière de blanchiment d'argent, comme dans le domaine du recel, la preuve stricte de l'acte préalable n'est pas exigée. Il n'est pas nécessaire que l'on connaisse en détail les circonstances du crime, singulièrement son auteur, pour pouvoir réprimer le blanchiment. Le lien exigé entre le crime à l'origine des fonds et le blanchiment d'argent est volontairement ténu (<ref-ruling> consid. 4.2.2 p. 5 et l'arrêt cité; arrêt 6B_160/2020 du 26 mai 2020 consid. 4.2).
L'infraction de blanchiment est intentionnelle, le dol éventuel étant suffisant. L'auteur doit vouloir ou accepter que le comportement qu'il choisit d'adopter soit propre à provoquer l'entrave prohibée. Au moment d'agir, il doit s'accommoder d'une réalisation possible des éléments constitutifs de l'infraction. L'auteur doit également savoir ou présumer que la valeur patrimoniale provenait d'un crime; à cet égard, il suffit qu'il ait connaissance de circonstances faisant naître le soupçon pressant de faits constituant légalement un crime et qu'il s'accommode de l'éventualité que ces faits se soient produits (<ref-ruling> consid. 2e p. 217; <ref-ruling> consid. 2b p. 247; arrêt 6B_261/2020 du 10 juin 2020 consid. 5.1 et les références citées).
2.3. La cour cantonale a exposé que le recourant n'avait fait valoir aucun grief à l'encontre de sa condamnation pour blanchiment d'argent et qu'il était incapable de donner un motif aux transactions effectuées via des agences de transfert de fonds ou de justifier d'un quelconque revenu licite qui les aurait permis. Elle a dès lors retenu qu'il s'agissait bien d'argent provenant de son activité délictueuse, d'autant que les sommes avaient été envoyées au Nigeria et que les bénéfices provenant de la prostitution étaient substantiels.
2.4. Le recourant soutient qu'aucun élément du dossier ne permet de relier les versements à une éventuelle activité criminelle. Il ressort du jugement attaqué que ce grief n'a pas été soulevé devant la cour cantonale, de sorte qu'il apparaît irrecevable, faute d'épuisement des instances cantonales (cf. <ref-law>). En outre, contrairement à ce que soutient le recourant, la motivation que la cour cantonale donne dans son jugement (cf. supra consid. 2.3) permet de suivre les raisons pour lesquelles elle a reconnu le recourant coupable de blanchiment d'argent. Au demeurant, dès lors qu'il a été établi que le recourant s'était rendu coupable de traite d'êtres humains qualifiée, que les bénéfices provenant de cette activité étaient importants et que l'intéressé ne pouvait justifier d'aucune activité lucrative permettant de justifier de tels gains, la cour cantonale pouvait retenir que le recourant, par ses agissements, notamment par le transfert de ces fonds au Nigeria, s'était rendu coupable de blanchiment d'argent. Le grief est rejeté dans la mesure où il est recevable.
3.
Pour le reste, le recourant ne remet pas en cause les qualifications juridiques des infractions qui lui sont reprochées, ni le genre et la quotité de la peine qui lui a été infligée. Ces questions n'ont pas à être examinées. Par ailleurs, au vu du sort de la cause, il n'y a pas lieu de se pencher sur l'indemnité au sens de l'<ref-law> sollicitée par le recourant.
4.
Compte tenu de ce qui précède, le recours doit être rejeté dans la mesure où il est recevable. Comme il était dénué de chances de succès, la demande d'assistance judiciaire doit être rejetée (<ref-law>). 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 17 novembre 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
La Greffière : Thalmann