Faits :
A.
A._, ressortissant français né en 1991, a été arrêté en Suisse le 19 novembre 2021 et placé en détention provisoire sous la prévention de vol en bande et par métier, dommage à la propriété, violation de domicile et infractions à la LCR et à la LEI. En substance, il lui est reproché de nombreux vols par effraction commis en 2016 avec B._ et C._, portant sur des voitures coûteuses, des objets de marque et des espèces ainsi que des plaques d'immatriculation. Lors de son audition d'arrestation, le prévenu a nié avoir commis des vols et a affirmé ne pas connaître B._.
Par ordonnance du 22 novembre 2021, le Tribunal des mesures de contrainte du canton de Vaud (Tmc) a ordonné la détention du prévenu pour deux mois au maximum, soit au 19 janvier 2022. Les charges étaient suffisantes: entendu le 30 janvier 2020 puis lors de son jugement, B._ avait affirmé avoir agi avec C._ et A._. Les trois hommes avaient été interpellés en octobre 2016 à Barcelone alors qu'ils se trouvaient à bord d'une voiture volée peu avant et contenant également des espèces, une cisaille de grande taille et une plaque d'immatriculation noire. Il existait en outre une ressemblance entre le prévenu et l'un des auteurs figurant sur les images de vidéosurveillance d'une station service. Le risque de fuite était sérieux.
B.
Par arrêt du 3 décembre 2021, la Chambre des recours pénale du Tribunal cantonal vaudois a confirmé cette ordonnance. D'un point de vue formel, elle a constaté que le dossier n'avait été remis en consultation à l'avocat du recourant qu'une heure quarante cinq avant l'audience du Tmc, ce qui était insuffisant au regard du droit d'être entendu. Toutefois, la procédure de recours devant une instance disposant d'un plein pouvoir d'examen avait permis de réparer ce vice. Sur le fond, les soupçons étaient suffisants. Les explications du prévenu quant à sa présence dans le même véhicule que B._ et C._ à Barcelone (il prétendait s'y être rendu en covoiturage pour y voir un match de football) étaient invraisemblables. La durée de deux mois permettait d'organiser une confrontation avec B._ et d'effectuer les mesures d'instruction supplémentaires, en particulier le contrôle des données ADN.
C.
Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral de réformer l'arrêt cantonal en ce sens que sa mise en détention est refusée et qu'il est constaté que la mise à disposition tardive et insuffisante du dossier pénal avant l'audience viole ses droits procéduraux, avec suite de frais et l'allocation de 2'000 fr. de dépens. Subsidiairement, il conclut à ce que la durée de sa détention soit limitée au 10 janvier 2022. Plus subsidiairement, il conclut au renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. Il demande l'assistance judiciaire.
La Chambre des recours pénale et le Ministère public se réfèrent à la décision attaquée, sans autres déterminations. Le recourant a ensuite renoncé à présenter des observations complémentaires.

Considérant en droit :
1.
Le recours en matière pénale est ouvert contre une décision relative à la détention provisoire ou pour des motifs de sûreté au sens des <ref-law> (<ref-ruling> consid. 1 p. 23). En outre, selon l'art. 81 al. 1 let. a et let. b ch. 1 LTF, le recourant, prévenu détenu, a un intérêt juridique à obtenir l'annulation ou la modification de la décision attaquée qui confirme son maintien en détention provisoire pour deux mois. Pour le surplus, le recours a été formé en temps utile (<ref-law>) contre une décision rendue en dernière instance cantonale (<ref-law>) et les conclusions qui y sont prises sont en soi recevables (<ref-law>). Partant, il y a lieu d'entrer en matière.
2.
Le recourant estime que la cour cantonale aurait dû formellement constater la violation de son droit d'être entendu par la mise à disposition tardive du dossier avant l'audience du Tmc, admettre le recours sur ce point et lui accorder des pleins dépens.
2.1. Selon la jurisprudence, une violation du droit d'être entendu (art. 29 al. 2 Cst.) peut être réparée lorsque la partie lésée a la possibilité de s'exprimer devant une autorité de recours jouissant d'un plein pouvoir d'examen. Une telle réparation doit toutefois rester l'exception et n'est admissible que dans l'hypothèse d'une atteinte aux droits procéduraux qui n'est pas particulièrement grave. Si par contre l'atteinte est importante, il n'est en règle générale pas possible de remédier à la violation (<ref-ruling> consid. 2.3.2; <ref-ruling> consid. 2.6.1). Selon la jurisprudence, une violation de délais de procédure peut être réparée dans une certaine mesure par une constatation de celle-ci, une admission partielle du recours et l'octroi de pleins dépens au recourant (<ref-ruling> consid. 4).
2.2. En l'occurrence, la cour cantonale a constaté que l'avocat du recourant n'avait pas reçu les pièces essentielles du dossier avec la demande de mise en détention provisoire du Ministère public; le dossier lui a été remis à 8h40 le matin de l'audience, et celle-ci s'est tenue à 10h05. La cour cantonale a considéré que ce délai était manifestement trop court pour prendre connaissance de l'essentiel du dossier. Elle a dès lors considéré que la violation du droit d'être entendu était évidente. Cette violation a ainsi été dûment et clairement constatée dans l'arrêt attaqué, sans qu'il ne soit nécessaire de le préciser dans le dispositif de ladite décision. Cela étant, en application de la jurisprudence précitée, il y avait lieu de tenir compte de l'irrégularité constatée, en tout cas dans la fixation des frais judiciaires. Conformément au principe de célérité (<ref-law>), il ne se justifie pas de renvoyer la cause sur ce point au Tribunal cantonal, la cour de céans étant en mesure de statuer elle-même (<ref-law>) : l'arrêt attaqué sera réformé en ce sens que les frais de l'arrêt cantonal seront réduits d'un tiers.
3.
Sur le fond, le recourant conteste l'existence de charges suffisantes à son encontre. Il considère que le Ministère public a déjà entrepris toutes les démarches envisageables dans le cadre de la procédure dirigée contre B._. La mise en cause du recourant par B._ serait trop vague: l'intéressé contestait sa participation aux infractions et ne pouvait donc reconnaître les avoir commises avec le recourant. Lors de l'audience de confrontation du 22 décembre 2021, B._ avait déclaré qu'il n'avait rien à voir avec le recourant, et qu'il l'avait mis en cause lors de son jugement afin de minimiser sa peine. L'instruction serait quasiment terminée et les instances précédentes n'auraient pas tenu compte des éléments à décharge que sont l'absence de traces d'utilisation d'un téléphone portable par le recourant en Suisse, l'absence de traces ADN du recourant et la mention au dossier de nombreuses autres personnes ayant pu commettre les infractions qui lui sont reprochées. Les circonstances de l'interpellation à Barcelone seraient sans rapport avec les infractions commises en Suisse.
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'<ref-law>. Elle doit en outre correspondre à un intérêt public et respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.). Pour que tel soit le cas, la privation de liberté doit être justifiée par un risque de fuite, 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 à l'égard de l'intéressé des charges suffisantes, soit de sérieux soupçons de culpabilité (<ref-law>; art. 5 par. 1 let. c CEDH; <ref-ruling> consid. 2 p. 187 s.).
Selon la jurisprudence, il n'appartient pas au juge de la détention de procéder à une pesée complète des éléments à charge et à décharge et d'apprécier la crédibilité des personnes qui mettent en cause le prévenu. Il doit uniquement examiner s'il existe des indices sérieux de culpabilité justifiant une telle mesure. L'intensité des charges propres à motiver un maintien en détention préventive n'est pas la même aux divers stades de l'instruction pénale; si des soupçons, même encore peu précis, peuvent être suffisants dans les premiers temps de l'enquête, la perspective d'une condamnation doit apparaître avec une certaine vraisemblance après l'accomplissement des actes d'instruction envisageables (<ref-ruling> consid. 2.1 p. 333 s.; <ref-ruling> consid. 3.1 et 3.2 p. 318 s.).
3.2. Le recourant ne saurait soutenir que l'instruction est pratiquement terminée. En effet, l'enquête initiale s'est concentrée sur B._, qui a été condamné par jugement du 11 août 2020 du Tribunal criminel de l'arrondissement de la Broye et du Nord vaudois. Elle n'a été reprise qu'après l'arrestation du recourant et, à l'égard de celui-ci, n'en est qu'à ses débuts. Le recourant a été clairement mis en cause par B._, lequel a expressément admis avoir agi avec le recourant et C._ (jugement du 11 août 2020, p. 7). B._ a certes nié sa participation aux infractions commises en 2016; il a toutefois reconnu en avoir commis plusieurs avec le recourant et C._ et le tribunal l'a reconnu coupable de l'ensemble de ces agissements.
Le recourant se prévaut du procès-verbal de confrontation du 22 décembre 2021, selon lequel B._ le mettrait hors de cause. Postérieure à l'arrêt attaqué, cette pièce nouvelle est irrecevable en vertu de la règle claire de l'<ref-law>. Quoiqu'il en soit, il ressort de ce procès-verbal que B._ a confirmé connaître le recourant, précisant "c'est un collègue à moi". Il a certes également affirmé n'avoir rien à voir avec le recourant, tout en ayant précédemment déclaré qu'il n'était pas une "balance" et ne voulait pas répondre aux questions du procureur. Il a encore précisé avoir dit ce qu'on attendait de lui afin de minimiser sa peine, mais on ne voit guère en quoi la mise en cause du recourant pouvait lui permettre d'espérer un tel allégement. Par conséquent, le revirement récent de B._ - dont il appartiendra au premier chef aux autorités de poursuite d'apprécier la portée - ne saurait remettre définitivement en cause les déclarations faites lors de son jugement, qui impliquent clairement le recourant.
L'épisode de l'arrestation à Barcelone en 2016 constitue également un élément à charge indéniable; le véhicule, volé en Suisse et utilisé pour divers délits, conduit par C._ et à bord duquel se trouvaient le recourant et B._, avait été intercepté après une course-poursuite. Le recourant a indiqué, lors de son audition d'arrestation, qu'il ne connaissait pas C._ et B._, ce qui est contraire aux déclarations de ce dernier, y compris lors de sa rétractation. Pour toute explication de sa présence dans ce véhicule (où ont été retrouvées une pince de grande taille, une plaque d'immatriculation ainsi que des clés de voitures de luxe), le recourant a affirmé être venu à Barcelone en covoiturage pour y voir un match de football, explication que la cour cantonale pouvait considérer sans arbitraire comme invraisemblable, vu notamment l'absence de billets pour le match en question. Enfin, la ressemblance du recourant avec l'individu figurant sur les clichés de vidéosurveillance a été admise par le Tmc, sur la base d'une comparaison faite en audience. Contrairement à ce que soutient le recourant, la cour cantonale n'a pas exclu une telle ressemblance, mais s'est dispensée d'examiner la question.
Il y a donc lieu de retenir qu'à ce stade de l'enquête, précoce en ce qui concerne le recourant, les charges apparaissent suffisantes.
4.
A titre subsidiaire, le recourant demande que les mesures d'instruction (soit l'établissement d'un profil ADN) soient menées très rapidement et que sa libération soit ordonnée au 10 janvier 2022. Rien ne permet toutefois de remettre en cause la durée de la détention, initialement limitée à deux mois par le Tmc. Comme le relève la cour cantonale, outre la confrontation avec B._ (qui a déjà eu lieu), le Ministère public devra tenter d'établir la présence en Suisse du recourant lors de faits remontant à l'automne 2016. Le contrôle des données d'ADN pourrait notamment prendre plusieurs semaines. Il n'apparaît dès lors pas que la durée de deux mois soit disproportionnée, de sorte que la limitation voulue par le recourant ne se justifie pas, et qu'il n'y a pas lieu de donner, à ce stade, des injonctions sur la manière de mener la procédure.
5.
Sur le vu de ce qui précède, le recours est très partiellement admis en ce sens que le ch. IV du dispositif de l'arrêt attaqué est modifié, les frais d'arrêt étant fixés à 660 fr. Le recours est rejeté pour le surplus. Le recourant a demandé l'assistance judiciaire (<ref-law>). Les conditions y relatives étant réunies, il y a lieu d'admettre cette requête et de désigner Me Jérôme Reymond comme avocat d'office pour la procédure fédérale et de lui allouer 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. 66 al. 4 et 64 al. 1 LTF), ni alloué de dépens (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est très partiellement admis en ce sens que le ch. IV du dispositif de l'arrêt attaqué est modifié, les frais d'arrêt étant fixés à 660 fr. Le recours est rejeté pour le surplus.
2.
La demande d'assistance judiciaire est admise. Me Jérôme Reymond 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 au Tribunal cantonal du canton de Vaud, Chambre des recours pénale.
Lausanne, le 17 janvier 2022
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Kneubühler
Le Greffier : Kurz