Faits :
A.
Par décision du 13 octobre 2014, l'Office de l'assurance-invalidité pour le canton de Vaud (ci-après: l'office AI) a supprimé la rente d'invalidité qu'il avait allouée à A._, avec effet rétroactif au 1er octobre 2005. Cette décision a été confirmée successivement par le Tribunal cantonal du canton de Vaud, Cour des assurances sociales (jugement du 9 juillet 2015) et par le Tribunal fédéral (arrêt 9C_569/2015 du 8 mars 2016).
Dans l'intervalle, par décision du 23 mars 2015, l'office AI a demandé à A._ de lui restituer le montant de 153'831 fr.
B.
Représenté par Me B._, avocat à U._, A._ a déféré la décision du 23 mars 2015 au Tribunal cantonal en concluant à son annulation. L'office AI a conclu au rejet du recours. Les parties ont répliqué (le 25 août 2015) et dupliqué (le 14 septembre 2015).
A la demande du Tribunal, l'office AI l'a informé de l'état d'avancement de la procédure pénale dirigée contre l'assuré (décision de mise en accusation), par lettre du 5 décembre 2016; le Tribunal cantonal a transmis une copie de cette écriture à Me B._, le 8 décembre 2016. Le dossier cantonal contient une note datée du 13 décembre 2016, dont la teneur est la suivante:
"Appel téléphonique de Me B._ pour informer qu'il n'est plus le conseil du recourant, il s'agit désormais de Me Signori (Information par courrier devrait suivre). La secrétaire de Me B._ fait suivre le dernier courrier que nous lui avons adressé à Me Signori."
Par jugement du 25 juillet 2017, notifié à Me B._, la juridiction cantonale a rejeté le recours. Le 8 août 2017, Me B._ a fait savoir à cette autorité qu'il l'avait informée de la fin de son mandat par lettre datée du 7 décembre 2016. Le 17 août 2017, le Tribunal cantonal lui a indiqué qu'il n'avait pas reçu la lettre du 7 décembre 2016.
Entretemps, Mes Duc et Signori, avocats à U._, représentant désormais l'assuré au bénéfice d'une procuration du 4 avril 2016, se sont adressés en ces termes à la juridiction cantonale par lettre du 11 août 2017:
"Madame la Présidente,
Me B._ nous a transmis copie de votre jugement du 25 juillet dernier, ainsi que copie de sa correspondance du 8 août dernier à votre Autorité.
Ces envois n'ont pas manqué de nous surprendre. En effet, bien que nous avons été consultés par M. A._ depuis le mois d'avril 2016, nous ignorions tout de l'existence-même de la procédure qui a donné lieu audit jugement.
Nous avions connaissance de la procédure de révision des rentes, qui a donné lieu à un arrêt du Tribunal fédéral du 9 juillet 2016 (recte: 8 mars 2016) (9C_569/2015), aujourd'hui définitif et exécutoire. En revanche, l'existence d'une procédure de restitution des rentes ne nous était pas connue et nous étions persuadés que celle-ci n'avait pas encore débuté.
Nous précisons que le dossier AI qui nous a été transmis par Me B._ ne contenait pas la moindre information relative à cette procédure. Par ailleurs, depuis le début de notre mandat, nous avons requis, à deux reprises, soit par courriers des 18 avril et 21 septembre 2016, le dossier complet de M. A._ auprès de l'Office AI, qui n'a jamais donné suite à nos demandes (cf. annexes).
Compte tenu des éléments qui précèdent, nous vous prions d'annuler votre jugement du 25 juillet dernier et nous impartir un délai au 30 septembre 2017 pour déposer des déterminations (...)."
C.
A._ interjette un recours en matière de droit public contre le jugement du 25 juillet 2017 dont il demande l'annulation, en concluant au renvoi de la cause aux premiers juges pour instruction complémentaire et nouvelle décision.
L'intimé conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer. La Présidente de la Cour des assurances sociales a déposé des observations, sur lesquelles le recourant a pris position.

Considérant en droit :
1.
Le recours en matière de droit public peut être formé pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (<ref-law>), sans être limité par les arguments de la partie recourante ou par la motivation de l'autorité précédente. Le Tribunal fédéral n'examine en principe que les griefs invoqués, compte tenu de l'exigence de motivation prévue à l'<ref-law>, et ne peut aller au-delà des conclusions des parties (<ref-law>). Il fonde son raisonnement sur les faits retenus par la juridiction de première instance (<ref-law>) sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>). La partie recourante qui entend s'écarter des faits constatés doit expliquer de manière circonstanciée en quoi les conditions de l'<ref-law> sont réalisées sinon un état de fait divergent ne peut être pris en considération.
2.
Le recourant se plaint d'une violation de son droit d'être entendu (art. 29 al. 2 Cst.) par la juridiction cantonale. A son avis, cette dernière ne pouvait pas faire abstraction du téléphone de Me B._ du 13 décembre 2016, par lequel il l'informait qu'il n'était plus son mandataire et que Me Signori reprenait le mandat. Le recourant soutient que durant près de huit mois, il n'a plus été assisté par un avocat et était de facto privé de faire valoir ses droits. En effet, Me B._ était parti du principe que Me Signori s'occupait désormais de son dossier, tandis que cette dernière ignorait l'existence même de la procédure. A cet égard, le recourant estime qu'il aurait pu requérir d'autres mesures d'instruction durant les huit mois qui se sont écoulés entre le dépôt du mandat de Me B._ et le prononcé du jugement attaqué. Il précise qu'il serait impossible, au risque de tomber dans l'arbitraire, de considérer d'emblée que les différentes mesures d'instruction que ses nouveaux mandataires auraient requises n'auraient pas permis de prouver sa bonne foi, respectivement le caractère erroné des affirmations de l'intimé.
Dans ce contexte, le recourant relève que la validité de la fin du mandat n'est pas subordonnée à la forme écrite. Pour lui, la révocation du mandat était donc valable, indépendamment de l'envoi ultérieur d'une confirmation écrite à la suite de la communication téléphonique du 13 décembre 2016. Le recourant est d'avis qu'il a été injustement privé de toute possibilité de requérir des mesures d'instruction supplémentaires et de se prononcer une dernière fois avant la notification de l'arrêt du 25 juillet 2017.
3.
3.1. Contrairement à ce que le recourant laisse entendre, la notification du jugement du 25 juillet 2017 n'était pas irrégulière. En effet, comme le Tribunal cantonal n'a pas obtenu la confirmation écrite qu'il pouvait raisonnablement attendre à la suite de l'appel téléphonique du 13 décembre 2016, que ce soit de la part de Me B._ ou de Me Signori, on ne saurait lui faire grief d'avoir notifié son jugement à Me B._.
A cet égard, il n'incombait pas à la juridiction cantonale d'informer elle-même Me Signori que Me B._ avait déposé son mandat, d'autant moins que le prénommé avait fait savoir au tribunal que sa secrétaire transmettrait à Me Signori la communication du 8 décembre 2016 qu'il venait de recevoir du tribunal. En d'autres termes, rien n'obligeait l'autorité cantonale à s'assurer que le mandat avait été correctement transféré.
On ajoutera que la situation du recourant n'aurait pas été différente si Me B._ n'avait pas renoncé à son mandat en cours de procédure, car le jugement attaqué lui aurait également été notifié sous sa forme, sans nouvelle interpellation du tribunal. A fortiori, la juridiction cantonale aurait pu se dispenser d'inviter Me Signori à déposer de plus amples écritures avant de rendre son jugement, si la procuration du 2 avril 2016 lui avait été communiquée en temps utile, puisque les parties s'étaient déjà exprimées.
3.2. Dans l'arrêt 9C_569/2015 du 8 mars 2016 (partie B. de l'état de fait), le Tribunal fédéral a constaté que " (...) par décision du 23 mars 2015, l'office AI a demandé la restitution d'un montant de 153'831 fr. Le recours formé contre cette décision est pendant devant le tribunal cantonal (cause AI 99/15)." Le Tribunal fédéral a considéré que " (...) La question de la prescription pénale devra être traitée dans le cadre du recours formé contre la décision de restitution du 23 mars 2015, relative aux prestations perçues du 1er octobre 2005 au 30 avril 2014 (cause AI 99/15, pendante devant la juridiction cantonale), dans l'éventualité où le principe de la restitution des prestations serait confirmé (...) " (consid. 1).
Mandatés le 4 avril 2016, soit peu de temps après la notification de l'arrêt du 8 mars 2016, Mes Duc et Signori déclarent qu'ils avaient connaissance de la procédure de révision des rentes qui a donné lieu à un arrêt du Tribunal fédéral du 9 juillet 2016 (recte: 8 mars 2016, 9C_569/2015). A la lecture de celui-ci, les avocats prénommés étaient pourtant en mesure de se rendre compte de l'état d'avancement de la procédure cantonale portant sur la restitution des rentes puisqu'elle était explicitement mentionnée dans l'état de fait. Il leur incombait par conséquent d'envoyer spontanément une copie de la procuration du 4 avril 2016 au Tribunal cantonal.
3.3. Pour le surplus, il sied de constater que le recourant a pu défendre pleinement ses droits dans le cadre du recours qu'il avait formé contre la décision de restitution du 23 mars 2015 alors qu'il était assisté par Me B._. Il n'expose d'ailleurs pas en quoi auraient consisté les "autres mesures d'instruction" qu'il évoque, le grief étant purement abstrait à cet égard. En procédure fédérale, le recourant aurait à tout le moins dû détailler concrètement les requêtes complémentaires que ses nouveaux mandataires auraient estimé nécessaire d'entreprendre, dans le cadre d'un troisième échange d'écritures, ce qu'il n'a pas fait.
4.
Le recourant ne porte le débat que sur le déroulement de la procédure cantonale de recours. Ce faisant, il n'expose pas en quoi le jugement attaqué serait contraire au droit fédéral sur le fond, dans la mesure où il est condamné à restituer la somme de 153'831 fr.; il n'y a donc pas lieu de revoir cette question (<ref-law>).
5.
Le recourant, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Vaud, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 9 janvier 2018
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Pfiffner
Le Greffier : Berthoud