Faits :
A.
Au mois de novembre 2011, une procédure pénale a été ouverte à Genève pour blanchiment d'argent, mettant en cause A._, E._ et F._. Le 10 novembre 2011, le Procureur chargé de la cause, Marc Tappolet, a prononcé le séquestre des avoirs bancaires détenus notamment par l'épouse de A._, D._.
Les 2 mars et 25 juin 2015, le Procureur a ordonné la restitution anticipée aux plaignantes des avoirs bancaires de D._. Sur recours de cette dernière, ces décisions ont été annulées par arrêt du 28 janvier 2016 de la Chambre pénale de recours de la Cour de justice genevoise, considérant que l'intéressée n'avait pu préalablement accéder au dossier et se prononcer. Le 22 mars 2016, le Procureur a indiqué à une première banque que sa décision de restitution avait été confirmée et que les avoirs devaient être transférés sur le compte du conseil des plaignantes. Il s'est adressé dans le même sens à une seconde banque le 11 août 2016 puis à une troisième le 23 août 2016, en dépit de l'intervention du conseil de l'intéressée rappelant les termes de l'arrêt du 28 janvier 2016, et après avoir indiqué le 18 août 2016 qu'il s'agissait peut être d'une erreur. Le 10 octobre 2016, le Procureur a rendu un avis de prochaine clôture. Les quatre prévenus ont été renvoyés en jugement le 15 décembre 2016 devant le Tribunal correctionnel.
B.
Le 13 octobre 2016, D._ a demandé la récusation du Procureur Tappolet. Par arrêt du 10 février 2017, la Chambre pénale de recours a admis la demande. En dépit d'un arrêt annulant ses premières décisions, le Procureur avait rendu de nouvelles ordonnances de restitution anticipée, puis s'était contenté de séquestrer les fonds indûment versés sur le compte du conseil des plaignantes avant de rendre le 23 août 2016 une nouvelle décision de restitution anticipée portant sur les mêmes fonds. Ces erreurs, graves, répétées et inexpliquées, constituaient une évidente apparence de prévention.
D._ et les trois prévenus ont ensuite saisi la Chambre pénale de recours afin d'obtenir l'annulation des actes de procédure accomplis par le magistrat récusé, dans leur intégralité ou à partir du 22 mars 2016. Le Tribunal correctionnel a été saisi de demandes similaires.
Par arrêt du 29 mai 2017, la Chambre pénale de recours a admis les requêtes et a ordonné l'annulation et la répétition des actes de procédure à compter du 23 août 2016. Lorsque la procédure était pendante devant le tribunal de première instance, il paraissait inadéquat de demander à celui-ci, alors qu'il venait de recevoir le dossier, de déterminer quels actes devaient être annulés, y compris l'acte de renvoi en jugement. Dans un tel cas, c'était à l'instance de recours, compétente en matière de récusation, qu'il appartenait de se prononcer également sur les conséquences d'une telle récusation. Selon l'arrêt du 10 février 2017, l'erreur déterminante commise par le Procureur consistait dans le prononcé d'une nouvelle ordonnance de restitution anticipée alors que les fonds visés avaient déjà été transférés sur le compte de l'avocat des parties plaignantes. L'annulation des actes d'instruction ne se justifiait qu'à partir de cette date. Etaient concernés l'audience finale du 4 octobre 2016, l'avis de clôture du 10 octobre 2016, l'ordonnance de refus d'administration de preuves du 15 décembre 2016 et l'acte d'accusation du même jour.
C.
A._ forme un recours en matière pénale par lequel il demande au Tribunal fédéral d'annuler l'arrêt de la Chambre pénale de recours et d'annuler tous les actes d'instruction accomplis par le procureur récusé; subsidiairement, il conclut au renvoi de la cause à l'instance cantonale pour nouvelle décision dans le sens des considérants. Il demande à titre de mesure provisionnelle la suspension de l'instruction menée par le nouveau procureur.
La cour cantonale se réfère à son arrêt, sans observations. Le Ministère public, soit pour lui le nouveau Procureur désigné dans la cause, conclut au rejet du recours. D._ conclut à l'admission du recours. E._ a renoncé à formuler des observations. F._ ne s'est pas déterminé. B._ Ltd et C._ (parties plaignantes) concluent à l'irrecevabilité, subsidiairement au rejet du recours; elles demandent préalablement le versement par la recourante de 5'000 fr. en couverture de leurs éventuels dépens.
Par ordonnance présidentielle du 13 juillet 2017, la demande de mesures provisionnelles a été rejetée et le recourant a été invité à verser 3'000 fr. de sûretés en garantie des dépens.
Le recourant, les parties plaignantes, le Procureur et D._ ont déposé de nouvelles observations, persistant dans leurs motifs et conclusions respectifs.

Considérant en droit :
1.
L'arrêt attaqué est une décision de dernière instance cantonale rendue dans le cadre d'une procédure pénale. Le recours en matière pénale (<ref-law>) est donc en principe ouvert.
1.1. L'arrêt attaqué est de nature incidente, puisqu'il ne met pas fin à la procédure pénale dans son ensemble. Il concerne non pas une demande de récusation, mais les suites de l'admission de celle-ci, de sorte que l'<ref-law> n'est pas directement applicable (arrêt 1B_5/2016 du 23 mai 2016 consid. 2.2.1). Au contraire de l'arrêt précité, la cause n'est toutefois pas limitée à un simple problème d'exploitation et d'administration des preuves au sens de l'<ref-law>; en effet, le procureur récusé a également rendu un acte d'accusation qui a eu pour effet de saisir la juridiction de première instance (<ref-law>). L'annulation de cet acte de procédure aurait ainsi pour effet le dessaisir le tribunal. En outre, le recours tend à l'annulation de tous les actes accomplis par le procureur récusé, ce qui aurait pour effet l'annulation de l'instruction dans son ensemble. En outre, le présent recours pose la question de l'autorité chargée de se prononcer sur l'application de l'<ref-law>, ce qui constitue une question de compétence (consid. 2 ci-dessous). Cela justifie qu'il soit statué immédiatement.
1.2. Le recourant n'est certes pas l'auteur de la demande de récusation qui a été admise le 10 février 2017. Toutefois, dès lors que l'<ref-law> permet à toute partie de demander l'annulation des actes effectués par le magistrat récusé, et dans la mesure où le recourant était partie à la procédure subséquente devant la cour cantonale, sa qualité pour recourir au sens de l'<ref-law> ne fait pas de doute. Les conclusions prises sont en outre recevables (<ref-law>), de sorte qu'il y a lieu d'entrer en matière.
2.
Avec raison, le recourant ne remet pas en cause la compétence de la Chambre pénale de recours pour statuer sur la demande d'annulation d'actes de procédure après l'admission de la demande de récusation. Lorsque l'affaire en est encore au stade de l'instruction, la décision à ce propos devrait en principe être prise par le nouveau procureur chargé du dossier, en tant que direction de la procédure (art. 61 let. a et 62 al. 1 CPP), avec recours éventuel au sens de l'<ref-law>.
En l'occurrence, la direction de la procédure n'est plus le Ministère public mais bien la présidence du Tribunal correctionnel puisqu'un acte d'accusation a été rendu. Dans ces circonstances particulières, il apparaît cohérent que l'autorité qui s'est prononcée sur la demande de récusation (soit l'autorité de recours, <ref-law>) se prononce également sur les conséquences de l'admission d'une telle demande, que ce soit directement dans sa décision sur récusation ou par le biais d'une demande ultérieure. L'autorité de recours connaît déjà le dossier sur ce point et est aussi la mieux à même d'interpréter le cas échéant les termes de sa propre décision sur récusation afin d'en tirer toutes les conséquences. Il ne serait d'ailleurs pas adéquat que le Tribunal correctionnel, qui ne connaît pas encore le dossier, doive statuer sur le sort des actes accomplis par le magistrat récusé et soit ainsi amené, le cas échéant, à annuler sa propre saisine. L'arrêt attaqué ne prête pas le flanc à la critique sur ce point.
3.
Se plaignant d'établissement arbitraire des faits, le recourant reproche à la cour cantonale d'avoir occulté ses allégations, selon lesquelles il se prévalait de sa situation procédurale propre en tant que principal prévenu. Le recourant revient sur les griefs contenus dans la demande de récusation qu'il a lui-même déposée le 8 avril 2013, lesquels portaient sur les faits reprochés au Procureur avant 2013 (durée insuffisante d'une audition après l'octroi d'un sauf-conduit, conditions d'accès au dossier); ces reproches seraient détaillés dans un arrêt de la cour cantonale du 28 mai 2013. Le recourant se prévaut aussi de faits survenus après cet arrêt.
Le recourant perd de vue que dans l'arrêt cantonal précité, sa demande de récusation avait été déclarée pour partie irrecevable car tardive (s'agissant des actes du procureur antérieurs au 7 février 2013) et pour partie mal fondée. L'arrêt présentement attaqué se limite dès lors à examiner les conséquences de l'admission de la demande de récusation prononcée par arrêt du 10 février 2017. Comme on le verra ci-dessous, la procédure prévue à l'<ref-law> ne saurait permettre à un prévenu de reprendre des motifs de récusation antérieurs, au demeurant déjà expressément écartés. Les faits allégués par le recourant apparaissent dès lors dénués de pertinence dans ce contexte.
4.
Invoquant les art. 56 let. f et 60 al. 1 CPP, le recourant soutient qu'en cas de récusation d'un magistrat pour des erreurs lourdes et répétées, c'est l'ensemble des actes permettant de parvenir à cette conclusion qui devraient être annulés, y compris ceux qui résulteraient de choix rigoureux ou discutables commis antérieurement au détriment du prévenu. Le recourant revient sur l'ensemble des actes qui auraient selon lui été accomplis à son détriment et qui, sans aboutir à la récusation du magistrat, avaient néanmoins déjà été critiqués en 2013 par la cour cantonale. C'est dès lors l'ensemble des actes accomplis par le procureur récusé qui devraient être annulés. S'agissant des actes commis au détriment de D._, l'annulation devrait remonter au mois de mars 2015.
4.1. Selon l'<ref-law>, les actes de procédure auxquels a participé une personne tenue de se récuser sont annulés et répétés si une partie le demande dans les cinq jours après qu'elle a eu connaissance de la décision admettant la récusation. Comme cela est relevé ci-dessus, ce droit de demander l'annulation n'est pas réservé à celui qui a requis et obtenu la récusation, mais peut aussi bénéficier aux autres parties (DONATSCH/HANSJAKOB/LIEBER Kommentar zur Schweizerischen Strafprozessordnung, n. 3 ad art. 60). La loi ne précise pas en revanche quelle est l'étendue de cette annulation. Selon la jurisprudence, seuls les actes intervenus après l'évènement qui justifie la récusation sont annulés et répétés (<ref-ruling> consid. 3.7 p. 186; arrêts 1B_419/2014 du 27 avril 2015 consid. 3.7; 6B_362/2012 du 29 octobre 2012 consid. 3.3.1; NIKLAUS SCHMID, Schweizerische Strafprozessordnung, Praxiskommentar, 2013, n. 2 ad art. 60; MARKUS BOOG, in: Basler Kommentar, Schweizerische Strafprozessordnung, 2011, n. 1 ad Art. 60; DONATSCH/HANSJAKOB/LIEBER, op. cit., n. 3 ad art. 60). Si ce principe est facilement applicable lorsque la récusation est motivée par un événement ponctuel (par exemple, intervention dans l'affaire à un autre titre, lien de famille avec une partie, acte procédural déterminé), il en va différemment lorsque le magistrat se voit reprocher une succession d'actes dont seule l'accumulation fonde une apparence de prévention. Dans un tel cas, il appartient à l'autorité de déterminer, sur la base de la décision qui a conduit à la récusation du magistrat, la date à partir de laquelle l'intervention du magistrat dans la procédure n'est plus admissible. Dans ce cadre, il y a lieu de reconnaître à l'autorité compétente une certaine marge d'appréciation lui permettant de tenir compte de l'ensemble des circonstances particulières du cas d'espèce.
4.2. En l'occurrence, la récusation du procureur a été admise sur demande de l'épouse du recourant; celle-ci se plaignait de différentes décisions en rapport avec les fonds dont elle est titulaire. C'est donc en vain que le recourant tente de revenir sur les motifs de récusation antérieurs, qui ont d'ailleurs expressément été écartés par décision entrée en force. Dans sa décision du 10 février 2017, la Chambre pénale de recours a considéré que le premier transfert anticipé ordonné en mars et juin 2015 était certes une erreur de procédure, mais que celle-ci avait pu être réparée sur recours. Le second ordre de transfert pouvait quant à lui résulter d'une erreur, comme le procureur l'a évoqué le 18 août 2016 en réponse à l'intervention de l'avocat des parties plaignantes; les montants ont d'ailleurs été séquestrés le même jour en mains dudit conseil. La décision sur récusation considère que la nouvelle ordonnance du 23 août 2016 constitue l'élément déterminant fondant la récusation, puisque cette décision permet d'exclure une simple erreur ou une négligence de la part du magistrat et que les explications promises le 18 août 2016 n'ont pas été données. C'est dès lors sans excéder son pouvoir d'appréciation que la cour cantonale retient le 23 août 2016 comme date déterminante pour l'annulation et la répétition des actes de procédure du magistrat récusé.
5.
Sur le vu de ce qui précède, le recours est rejeté. Conformément aux art. 66 al. 1 et 68 al. 2 LTF, les frais judiciaires sont mis à la charge du recourant, de même que l'indemnité de dépens allouée aux intimées B._ Ltd et C._. Il n'est pas alloué d'autres dépens: D._ a conclu à l'admission du recours, E._ a renoncé à déposer des observations et F._ n'a pas procédé.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge du recourant.
3.
Une indemnité de dépens de 3'000 fr. est allouée aux intimées B._ Ltd et C._; cette indemnité est payée au moyen des sûretés versées par le recourant à la caisse du Tribunal fédéral.
4.
Le présent arrêt est communiqué aux mandataires des parties, au Ministère public et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 6 octobre 2017
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Merkli
Le Greffier : Kurz