Faits :
A.
Par jugement du 19 octobre 2020, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a condamné A._ notamment pour tentative de vol, dommages à la propriété, escroquerie par métier, faux dans les certificats, empêchement d'accomplir un acte officiel et violation grave qualifiée des règles de la circulation routière à une peine privative de liberté de trois ans, sous déduction de 250 jours de détention avant jugement au 12 août 2020, cette peine étant partiellement complémentaire aux ordonnances pénales du Ministère public de l'arrondissement du Nord vaudois des 20 novembre 2017 et 4 septembre 2018. Il a en outre condamné le prénommé à une peine pécuniaire de 10 jours-amende à 30 francs le jour et a ordonné, en lieu et place de la détention pour des motifs de sûreté, une mesure de substitution à forme de la poursuite de l'exécution de la peine privative de liberté de six mois prononcée le 20 novembre 2017 par le Ministère public de l'arrondissement du Nord vaudois et a dit que A._ serait à nouveau placé en détention pour des motifs de sûreté si l'exécution de la sanction précitée, respectivement son aménagement devait entraîner sa libération préalablement à l'issue de la présente procédure.
Statuant le 17 mars 2021 sur appel du condamné, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a très partiellement admis l'appel. En bref, elle a confirmé les faits retenus à l'encontre du prévenu, a réduit un montant dont celui-ci avait été reconnu débiteur en faveur de l'une des parties plaignantes et, rectifiant d'office le jugement attaqué, a libéré le prévenu du chef de prévention d'escroquerie par métier, retenant en lieu et place de cette infraction celle d'utilisation frauduleuse d'un ordinateur par métier. Elle a ordonné, à la place de la détention pour des motifs de sûreté, une mesure de substitution sous la forme de la poursuite de l'exécution des deux peines privatives de liberté de six mois chacune prononcées les 20 novembre 2017 et 4 septembre 2018 par le Ministère public de l'arrondissement du Nord vaudois et a dit que A._ sera à nouveau placé en détention pour des motifs de sûreté si l'exécution des sanctions précitées, respectivement leur aménagement devait entraîner sa libération préalablement à l'issue de la présente procédure. Elle a en outre ordonné le maintien en exécution de peine du prévenu à titre de mesures de substitution, afin de garantir l'exécution de la peine, considérant qu'il présentait un risque de fuite et de réitération. Le jugement d'appel motivé a été notifié le 5 mai 2021. A._ a interjeté un recours au Tribunal fédéral contre cet arrêt (cause 6B_683/2021). La cause est pendante.
B.
Par acte du 2 décembre 2021, A._ a requis sa libération immédiate. Par prononcé du 8 décembre 2021, la Cour d'appel pénale du Tribunal cantonal vaudois (ci-après: le Tribunal cantonal) a rejeté la demande de mise en liberté. Elle a considéré en substance que les charges étaient suffisantes, que des risques de fuite et de récidive existaient qu'aucune mesure de substitution ne pouvait pallier et que le principe de la proportionnalité était respecté.
C.
Agissant par la voie du recours en matière pénale, A._ demande principalement au Tribunal fédéral de réformer le prononcé du 8 décembre 2021 en ce sens que sa mise en liberté immédiate est ordonnée. Il conclut subsidiairement au renvoi de la cause à l'instance précédente pour complément d'instruction et nouvelle décision dans le sens des considérants. Il requiert aussi l'assistance judiciaire.
Invités à se déterminer, le Ministère public et le Tribunal cantonal y renoncent et se réfèrent à la décision attaquée. Le recourant a répliqué par courrier du 31 janvier 2022.

Considérant en droit :
1.
Selon l'art. 78 LTF, le recours en matière pénale est ouvert contre les décisions rendues par la direction de la juridiction d'appel qui rejette une demande de libération de la détention pour des motifs de sûreté, en application de l'art. 233 CPP (arrêt 1B_55/2020 du 21 février 2020 consid. 1). Selon l'art. 81 al. 1 let. a et b ch. 1 LTF, le recourant, condamné en appel et détenu, a qualité pour recourir. Pour le surplus, le recours est formé en temps utile (art. 100 al. 1 LTF) et les conclusions prises sont recevables au regard de l'art. 107 al. 2 LTF. Partant, il y a lieu d'entrer en matière.
2.
Dans un premier grief, le recourant fait valoir "de nombreux vices formels affectant à ce jour la présente cause pénale [à son] détriment". Il mentionne ses conditions de détention prétendument illicites, le refus de l'instance précédente d'avoir tenu une audience avant de statuer sur sa demande de libération ainsi que la composition de la cour cantonale.
En vertu de l'art. 42 al. 1 LTF, les mémoires de recours doivent être motivés. Selon l'art. 42 al. 2 LTF, les motifs doivent exposer succinctement en quoi l'acte attaqué viole le droit. Pour satisfaire à cette exigence, il appartient au recourant de discuter au moins brièvement les considérants de la décision litigieuse et d'expliquer en quoi ceux-ci seraient contraires au droit (<ref-ruling> consid. 1.7.1). Les griefs de violation des droits fondamentaux sont en outre soumis à des exigences de motivation accrues (art. 106 al. 2 LTF), le recourant devant alors citer les principes constitutionnels qui n'auraient pas été respectés et expliquer de manière claire et précise en quoi ces principes auraient été violés (<ref-ruling> consid. 3).
En l'occurrence, le recourant ne se prévaut de la violation d'aucune disposition légale en lien avec les critiques qu'il formule. Il ne discute pas non plus la motivation de l'arrêt attaqué sur ces points. En particulier, il ne critique pas la motivation développée en lien avec la composition de la juridiction d'appel statuant en matière de contrôle de la détention. Insuffisamment motivés, ces griefs doivent être déclarés irrecevables en vertu des art. 42 al. 2 et 106 al. 2 LTF.
3.
Sur le fond, le recourant se prévaut d'une absence de soupçons suffisants "en ce qui concerne certaines des infractions pénales qui lui sont reprochées".
3.1. Une mesure de détention provisoire ou pour des motifs de sûreté n'est compatible avec la liberté personnelle (art. 10 al. 2 Cst. et 5 CEDH) que si elle repose sur une base légale (art. 31 al. 1 et 36 al. 1 Cst.), soit en l'espèce l'art. 221 CPP. Elle doit en outre correspondre à un intérêt public et respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.; art. 212 al. 3 et 237 al. 1 CPP). Pour que tel soit le cas, la privation de liberté doit être justifiée par les besoins de l'instruction, un risque de fuite ou un danger de collusion ou de réitération (cf. art. 221 al. 1 let. a, b et c CPP).
Préalablement à ces conditions, il doit exister des charges suffisantes, soit de sérieux soupçons de culpabilité, à l'égard de l'intéressé (art. 221 al. 1 CPP; art. 5 par. 1 let. c CEDH), c'est-à-dire des raisons plausibles de le soupçonner d'avoir commis une infraction (<ref-ruling> consid. 3.1 et 3.2).
3.2. En l'occurrence, le recourant met sommairement en cause les charges suffisantes uniquement s'agissant de la coactivité pour le délit de chauffard et de l'utilisation frauduleuse d'un ordinateur par métier. Il se contente toutefois de mentionner son recours au Tribunal fédéral déposé contre le jugement en appel du 17 mars 2021, sans même y renvoyer.
Fût-il recevable et suffisamment motivé, ce grief devrait être de toute manière rejeté. En effet, le recourant ne conteste pas l'existence de forts soupçons à son encontre s'agissant des infractions de tentative de vol, dommages à la propriété, faux dans les certificats, empêchement d'accomplir un acte officiel, violation grave qualifiée des règles de la circulation routière et infraction à la loi fédérale sur les étrangers. Sa condamnation en appel en lien avec ces infractions suffit pour constituer un faisceau d'indices justifiant son maintien en détention.
4.
Le recourant reproche encore au Tribunal cantonal d'avoir "exagéré arbitrairement le prétendu risque de fuite".
4.1. Le risque de fuite au sens de l'art. 221 al. 1 let. a CPP doit s'analyser en fonction d'un ensemble de critères tels que le caractère de l'intéressé, sa moralité, ses ressources, ses liens avec l'État qui le poursuit ainsi que ses contacts à l'étranger, qui font apparaître le risque de fuite non seulement possible, mais également probable. La gravité de l'infraction ne peut pas, à elle seule, justifier la prolongation de la détention, même si elle permet souvent de présumer un danger de fuite en raison de l'importance de la peine dont le prévenu est menacé (<ref-ruling> consid. 2.2 et les arrêts cités).
4.2. En l'espèce, la cour cantonale a retenu que le risque de fuite restait concret, nonobstant la durée de l'incarcération et le solde de peine à purger.
Le recourant ne conteste pas avoir quitté la Suisse en mai 2019 pour s'installer en Roumanie, où il dispose d'un logement. Il ne nie pas non plus que sa compagne, qu'il a épousée selon la tradition gitane, vit dans ce pays. La cour cantonale a en outre relevé que lors de l'audience d'appel, le prévenu avait confirmé qu'il projetait de s'établir durablement en Roumanie, expliquant notamment avoir pris la décision d'émigrer pour échapper à l' "enchaînement de [ses] condamnations" et à un "passif" qu'il n'arrivait plus à surmonter.
Ces éléments apparaissent suffisants pour retenir un risque concret de fuite. L'arrêt attaqué ne prête pas le flanc à la critique sur ce point. Le recourant se contente d'ailleurs d'affirmer que ses liens avec la Suisse sont forts, effectifs, concrets et prépondérants et se limite à faire état d'appels téléphoniques à sa mère et à des destinataires en Suisse, dont il ne précise pas l'identité. Il soutient que son solde de peine théorique (avant une possible libération conditionnelle) serait d'environ 6 mois, ce qui serait "bien trop bas" pour retenir un risque de fuite. Cette argumentation est toutefois insuffisante à faire admettre l'invraisemblance du risque de fuite, vu l'intensité de celui-ci.
Le recourant relève encore que son éventuelle extradition de la Roumanie vers la Suisse est possible. Il perd cependant de vue que le fait que le risque de fuite puisse se réaliser dans un pays qui pourrait donner suite à une requête d'extradition de la Suisse n'est pas déterminant pour nier le risque de fuite (<ref-ruling> consid. 2.2).
4.3. Le maintien de la détention du recourant étant justifié par un risque de fuite, il n'y a pas lieu d'examiner si cette mesure s'impose aussi en raison d'un risque de récidive au sens de l'art. 221 al. 1 let. c CPP.
5.
Le recourant fait enfin valoir une violation du principe de la proportionnalité.
5.1. En vertu des art. 31 al. 3 Cst. et 5 par. 3 CEDH, toute personne qui est mise en détention préventive a le droit d'être jugée dans un délai raisonnable ou d'être libérée pendant la procédure pénale. L'art. 212 al. 3 CPP prévoit ainsi que la détention provisoire ou pour des motifs de sûreté ne doit pas durer plus longtemps que la peine privative de liberté prévisible.
Le juge peut dès lors maintenir une telle mesure aussi longtemps qu'elle n'est pas très proche de la durée de la peine privative de liberté à laquelle il faut s'attendre concrètement en cas de condamnation. Il convient d'accorder une attention particulière à cette limite, car il y a lieu de veiller à ce que les autorités de jugement ne prennent pas en considération dans la fixation de la peine la durée de la détention avant jugement à imputer selon l'art. 51 CP (<ref-ruling> consid. 3.1 et les arrêts cités).
Lorsque le détenu a déjà été jugé en première instance et en appel, ces prononcés constituent un indice important quant à la peine susceptible de devoir être finalement exécutée (cf. <ref-ruling> consid. 5.1).
5.2. En l'espèce, le recourant a été placé en détention provisoire le 6 décembre 2019. Durant sa détention avant jugement, il a exécuté, à titre de mesures de substitution, deux peines privatives de liberté totalisant douze mois, de sorte qu'il est détenu depuis une année seulement s'agissant des faits objets du jugement du 17 mars 2021. L'intéressé est donc loin d'avoir exécuté l'intégralité de la peine de trois ans prononcée à son encontre, de sorte que le principe de la proportionnalité demeure respecté.
Le simple fait que le recourant a "contesté d'une manière convaincante plusieurs délits qui lui avaient été imputés au stade du jugement d'appel" dans son recours en matière pénale déposé au Tribunal fédéral contre le jugement d'appel n'est pas en mesure de remettre en cause cette argumentation. Au demeurant, il n'appartient pas au juge de la détention provisoire d'examiner en détail les considérations de fait, pas plus que de faire une appréciation complète des éléments à charge et à décharge; il lui incombe uniquement de vérifier, sous l'angle de la vraisemblance, que le maintien en détention avant jugement repose sur des indices de culpabilité suffisants (<ref-ruling> consid. 2.1). C'est au juge du fond et non à celui de la détention qu'il incombera, cas échéant, d'apprécier la culpabilité de l'intéressé ainsi que la valeur probante des différentes déclarations.
En conséquence, l'instance précédente n'a pas violé le droit fédéral en jugeant que le principe de la proportionnalité demeurait respecté.
6.
Il s'ensuit que le recours doit être rejeté, dans la mesure de sa recevabilité.
Les conditions posées à l'art. 64 al. 1 LTF étant réunies, il convient de mettre le recourant au bénéfice de l'assistance judiciaire, de lui désigner Me François Gillard comme avocat d'office et d'allouer à celui-ci une indemnité à titre d'honoraires, qui seront supportés par la caisse du Tribunal fédéral. Il n'est pas perçu de frais judiciaires (art. 64 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté, dans la mesure de sa recevabilité.
2.
La demande d'assistance judiciaire est admise; Me François Gillard est désigné comme avocat d'office du recourant et une indemnité de 1'500 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral. Il n'est pas perçu de frais judiciaires.
3.
Le présent arrêt est communiqué au mandataire du recourant, au Ministère public de l'arrondissement du Nord vaudois et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 3 février 2022
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Kneubühler
La Greffière : Tornay Schaller