Faits :
A.
Avant 2014, X._ a été condamné à cinq reprises, notamment pour actes d'ordre sexuel avec un enfant, délit manqué de viol et viol en 2002 et 2009, ainsi que pour des violences physiques sans connotation sexuelle en 2005, 2009 et 2011.
Le 15 février 2011, le Tribunal de police de l'arrondissement de la Broye et du Nord vaudois a condamné le prénommé à une peine privative de liberté d'ensemble de 18 mois et a ordonné en sa faveur un traitement ambulatoire au sens de l'<ref-law>. Le 30 mai 2011, X._ a été libéré conditionnellement, à condition qu'il se soumette à des contrôles d'abstinence aux stupéfiants et poursuive son suivi psychothérapeutique ambulatoire.
B.
Par jugement du 7 février 2014, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a condamné X._, pour voies de fait qualifiées, injure, menaces qualifiées, contrainte, contrainte sexuelle, contravention à la LStup et infraction à la LArm, a révoqué la libération conditionnelle octroyée le 30 mai 2011 et a infligé au prénommé une peine privative de liberté d'ensemble de quatre ans et demi, sous déduction de 290 jours de détention avant jugement, à une peine pécuniaire de 20 jours-amende à 10 fr. le jour ainsi qu'à une amende de 600 francs. Le tribunal a en outre ordonné la poursuite du traitement ambulatoire à visées psychothérapeutique et de traitement des addictions au sens de l'<ref-law>.
C.
C.a. Le terme des peines purgées par X._ était fixé au 5 novembre 2017.
C.b. Dans le cadre du réexamen de la libération conditionnelle de X._, le Juge d'application des peines a entendu ce dernier le 31 janvier 2017 et a ordonné une expertise psychiatrique de l'intéressé.
L'expert, le Dr A._, a rendu ses conclusions dans un rapport du 3 juillet 2017 et un complément du 18 septembre 2017. Il a notamment indiqué qu'il était judicieux de se poser la question d'un changement de mesure, sous la forme d'une mesure thérapeutique institutionnelle au sens de l'<ref-law>, le traitement en psychothérapie devant être maintenu et le cadre devant être élargi progressivement de manière à ne pas favoriser une recrudescence des angoisses et des comportements dysfonctionnels de X._.
C.c. Le 17 octobre 2017, le Juge d'application des peines a saisi le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois en vue de l'examen du prononcé d'une mesure thérapeutique institutionnelle en faveur de l'intéressé.
C.d. Par ordonnance du 2 novembre 2017, le Tribunal des mesures de contrainte, saisi d'une demande formée par le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois, a ordonné la détention de X._ pour des motifs de sûreté et a fixé la durée maximale de cette détention à un mois, soit au plus tard jusqu'au 1er décembre 2017. Cette ordonnance a été confirmée par arrêt du 16 novembre 2017 de la Chambre des recours pénale du Tribunal cantonal du canton de Vaud, ensuite d'un recours formé par le prénommé.
Par ordonnance du 22 novembre 2017, le Tribunal des mesures de contrainte a prolongé la détention de X._ pour des motifs de sûreté jusqu'au 19 février 2018. Cette ordonnance a été confirmée par arrêt du 6 décembre 2017 de la Chambre des recours pénale, ensuite d'un recours formé par le prénommé.
D.
Par jugement du 15 février 2018, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a levé la mesure de traitement psychothérapeutique ambulatoire instaurée en faveur de X._ par jugement du 15 février 2011 et reconduite par jugement du 7 février 2014, a ordonné à la place une mesure thérapeutique institutionnelle au sens de l'<ref-law> et a ordonné le maintien en détention de l'intéressé pour des motifs de sûreté.
E.
Par arrêt du 16 mars 2018, la Chambre des recours pénale du Tribunal cantonal vaudois a rejeté le recours formé par X._ contre le jugement du 15 février 2018 - dans la mesure où celui-ci était recevable - et a confirmé cette décision.
F.
X._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 16 mars 2018, en concluant, avec suite de frais et dépens, principalement à sa réforme en ce sens que la mesure de traitement psychothérapeutique ambulatoire instaurée en sa faveur par jugement du 15 février 2011 et reconduite par jugement du 7 février 2014 est maintenue, qu'il est renoncé à l'instauration d'une mesure thérapeutique institutionnelle et que sa libération immédiate est ordonnée, une indemnité lui étant en outre allouée à titre de l'art. 429 al. 1 let. c CPP pour la privation de liberté illicite subie depuis le 5 novembre 2017. Subsidiairement, il conclut à son annulation et au renvoi de la cause à l'autorité précédente pour nouvelle décision. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.
G.
Invités à se déterminer, le ministère public et la cour cantonale ont renoncé à présenter des observations et se sont référés à la décision attaquée.

Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir violé les art. 391 al. 1 et 393 al. 2 CPP, ainsi que le principe "iura novit curia", en déclarant irrecevable son écriture complémentaire du 9 mars 2018 - adressée à l'autorité précédente postérieurement à l'échéance du délai de recours - et en s'abstenant d'examiner les arguments qui y étaient développés.
Selon la jurisprudence, la motivation d'un acte de recours doit être entièrement contenue dans l'acte de recours lui-même et ne saurait être complétée ou corrigée ultérieurement (cf. arrêts 6B_260/2018 du 15 mars 2018 consid. 5.2 et la référence citée; 6B_347/2016 du 10 février 2017 consid. 4.1; 6B_207/2014 du 2 février 2015 consid. 5.3; cf. <ref-ruling> consid. 2.4.2 et 2.4.3 p. 247 s.).
Le recourant n'expose pas pour quels motifs la cour cantonale aurait dû s'écarter de ces principes afin de lui permettre de compléter, après l'échéance du délai de recours prévu à l'<ref-law>, son mémoire de recours du 26 février 2018. Au demeurant, l'intéressé indique que, dans l'écriture déposée hors délai devant l'autorité précédente, il aurait uniquement fait porter son argumentation sur les principes développés dans un arrêt de la Cour européenne des droits de l'Homme Kadusic c. Suisse du 9 janvier 2018 (requête no 43977/13). Or, compte tenu de la date de cette décision, on ne voit pas en quoi le recourant, qui était assisté par un avocat dans le cadre de la procédure de recours, aurait été empêché de s'y référer dans son écriture du 26 février 2018.
Enfin, la cour cantonale a, dans l'arrêt attaqué, examiné les conditions d'application de l'<ref-law>, disposition à laquelle le recourant entend appliquer la jurisprudence de la Cour européenne des droits de l'Homme dont il se prévaut. On ne perçoit pas, partant, en quoi le principe "iura novit curia" aurait pu être violé, étant rappelé que le recourant peut, dans le cadre du présent recours en matière pénale, critiquer devant le Tribunal fédéral l'application du droit fédéral par la cour cantonale (cf. <ref-law>).
Il découle de ce qui précède que le grief doit être rejeté.
2.
Le recourant fait grief à l'autorité précédente d'avoir violé son droit d'être entendu concernant le maintien de sa détention pour des motifs de sûreté.
La détention pour des motifs de sûreté relève de la compétence de la Première Cour de droit public du Tribunal fédéral (cf. art. 29 al. 3 du règlement du Tribunal fédéral [RTF; RS 173.110.131]). Il est néanmoins expédient de statuer dans le cadre du présent recours, seul un vice formel étant pris en compte, sans examen des conditions spécifiques à la détention pour des motifs de sûreté.
2.1. Le recourant affirme tout d'abord que le jugement de première instance n'aurait compris aucune motivation concernant son maintien en détention pour des motifs de sûreté, de sorte qu'il ne lui aurait pas été possible de s'y opposer dans le cadre de la procédure de recours. Dirigé contre le jugement de première instance, ce grief est irrecevable (cf. <ref-law>).
Dans son recours du 26 février 2018, le recourant a contesté son maintien en détention pour des motifs de sûreté sous l'angle de la proportionnalité, tout en contestant par ailleurs l'existence d'un risque de récidive (cf. pièce 35/1 du dossier cantonal, p. 8 ss). La cour cantonale a pour sa part également fondé le maintien de l'intéressé en détention pour des motifs de sûreté sur le risque que celui-ci compromette sérieusement la sécurité d'autrui par des crimes ou des délits graves après avoir déjà commis des infractions du même genre (cf. art. 221 al. 1 let. c CPP). Le recourant ne remet pas en cause cette motivation. Il n'y a pas, partant, lieu d'examiner cet aspect plus avant.
2.2. Le recourant soutient ensuite que son droit d'être entendu aurait été violé dans la mesure où le tribunal de première instance a, dans le jugement du 15 février 2018, ordonné son maintien en détention pour des motifs de sûreté sans lui avoir préalablement donné l'occasion de s'exprimer sur cette question. Selon le recourant, la cour cantonale n'aurait quant à elle pas pu réparer ce vice en examinant pour la première fois ses arguments à cet égard.
2.2.1. Le droit d'être d'entendu découlant des art. 29 al. 2 Cst., 3 al. 2 let. c et 107 CPP comprend le droit, pour le justiciable, de s'exprimer sur les éléments pertinents avant qu'une décision ne soit prise touchant sa situation juridique (<ref-ruling> consid. 2.3 p. 222; <ref-ruling> consid. 2.2.1 p. 188).
Tel est également le cas dans le cadre des procédures de détention provisoire ou pour des motifs de sûreté (cf. art. 31 al. 4 Cst. et 5 par. 4 CEDH; <ref-ruling> consid. 3.3.2 p. 91 s.; <ref-ruling> consid. 3c p. 175 s.; arrêt 1B_165/2017 du 19 mai 2017 consid. 4.1). Devant le tribunal des mesures de contrainte, cela découle en particulier des art. 225, 227 al. 3, 228 al. 3 et des renvois des art. 229 al. 3 et 230 al. 5 CPP. Il n'en va pas différemment lorsque cette procédure - que ce soit en vue d'un placement en détention ou d'un maintien de cette mesure - est menée par le tribunal de première instance en application de l'<ref-law>. Le prévenu doit avoir l'opportunité de se déterminer sur cette question préalablement à la décision y relative (arrêt 1B_165/2017 précité consid. 4.1 et les références citées).
Cela étant, la jurisprudence n'exclut pas qu'exceptionnellement, une éventuelle violation du droit d'être entendu à ce stade de la procédure puisse être réparée par le biais du recours, puisque l'autorité en la matière dispose d'une pleine cognition en fait et en droit (cf. <ref-law>; <ref-ruling> consid. 2.8.1 p. 226; <ref-ruling> consid. 2.3.2 p. 197 s.; <ref-ruling> consid. 2.6.1 p. 285; arrêt 6B_290/2017 du 27 novembre 2017 consid. 2.4). Toutefois, une telle réparation doit rester l'exception et n'est admissible, en principe, que dans l'hypothèse d'une atteinte qui n'est pas particulièrement grave aux droits procéduraux de la partie lésée; cela étant, une réparation de la violation du droit d'être entendu peut également se justifier, même en présence d'un vice grave, lorsque le renvoi constituerait une vaine formalité et aboutirait à un allongement inutile de la procédure, ce qui serait incompatible avec l'intérêt de la partie concernée à ce que sa cause soit tranchée dans un délai raisonnable (<ref-ruling> consid. 2.8.1 p. 226; <ref-ruling> consid. 2.3.2 p. 197 s.; <ref-ruling> consid. 4.2.2.2 p. 126 s.; arrêt 6B_323/2017 du 26 février 2018 consid. 2.1).
Par ailleurs, le droit d'être entendu n'est pas une fin en soi. Il constitue un moyen d'éviter qu'une procédure judiciaire ne débouche sur un jugement vicié en raison de la violation du droit des parties de participer à la procédure, notamment à l'administration des preuves. Lorsqu'on ne voit pas quelle influence la violation du droit d'être entendu a pu avoir sur la procédure, il n'y a pas lieu d'annuler la décision attaquée (<ref-ruling> consid. 1.4.1 p. 386 et les références citées).
2.2.2. La cour cantonale a exposé que le recourant n'avait pas été invité, par le tribunal de première instance, à se déterminer sur son maintien en détention pour des motifs de sûreté préalablement au jugement du 15 février 2018. La décision de maintenir l'intéressé en détention avait ainsi été affectée d'un vice formel. Selon l'autorité précédente, ce vice était toutefois réparé dès lors que le recourant avait pu faire part de ses déterminations concernant sa détention pour des motifs de sûreté dans le cadre de la procédure de recours. De surcroît, il n'existait aucun non-respect des délais en la matière, susceptible d'entraîner l'élargissement du recourant.
2.2.3. En l'espèce, on peut se demander dans quelle mesure le tribunal de première instance aurait dû inviter expressément le recourant à se déterminer sur la question de son maintien en détention pour des motifs de sûreté. En effet, il ressort de l'arrêt attaqué que, dans son ordonnance du 2 novembre 2017, le Tribunal des mesures de contrainte a ordonné la détention du recourant pour des motifs de sûreté en considérant que le risque de réitération était "important et imminent". Dans son arrêt du 16 novembre 2017, la Chambre des recours pénale a également invoqué l'existence d'un risque de récidive et a par ailleurs considéré qu'une mesure de substitution - soit une assignation à domicile couplée avec une surveillance électronique - ne serait pas de nature à contenir celui-ci. Dans son arrêt du 6 décembre 2017, la Chambre des recours pénale a confirmé la prolongation de la détention pour des motifs de sûreté jusqu'aux débats de première instance, en s'appuyant sur les mêmes considérations. Ainsi, dès lors que l'existence d'un risque de récidive avait été retenue par ces autorités pour refuser un élargissement du recourant avant les débats du 12 février 2018 et que l'existence d'un tel risque constituait par ailleurs l'une des conditions au prononcé de la mesure thérapeutique institutionnelle litigieuse, le recourant devait s'attendre, en cas de prononcé d'une telle mesure, à voir sa détention pour des motifs de sûreté prolongée jusqu'à sa mise en oeuvre.
Quoi qu'il en soit, il apparaît en l'occurrence qu'un renvoi de la cause au tribunal de première instance, par la cour cantonale, n'aurait constitué qu'une vaine formalité, dès lors que ces deux autorités avaient admis l'existence d'un risque de réitération excluant tout élargissement. Par ailleurs, le recourant n'indique pas quel grief - autre que celui consistant à contester l'existence d'un risque de récidive, qui a constitué la question centrale de la cause, ou que la question de la proportionnalité de la détention pour des motifs de sûreté, qu'il a soulevé devant l'autorité précédente sans le répéter devant le Tribunal fédéral - il aurait formulé à l'encontre de son maintien en détention.
Compte tenu de ce qui précède, un éventuel vice aurait de toute manière été réparé par le recours formé devant la cour cantonale. Le grief doit être rejeté.
3.
Le recourant reproche à la cour cantonale d'avoir violé l'<ref-law> en confirmant le prononcé d'une mesure thérapeutique institutionnelle à son endroit.
3.1. Aux termes de l'<ref-law>, si, avant ou pendant l'exécution d'une peine privative de liberté ou d'un internement au sens de l'<ref-law>, le condamné réunit les conditions d'une mesure thérapeutique institutionnelle prévues aux art. 59 à 61 CP, le juge peut ordonner cette mesure ultérieurement. Le juge compétent est celui qui a prononcé la peine ou ordonné l'internement. L'exécution du solde de la peine est suspendue. La jurisprudence considère que l'<ref-law> règle uniquement la transformation d'une peine privative de liberté - prononcée seule - en une mesure institutionnelle. Il ne permet pas de convertir un traitement ambulatoire exécuté pendant l'exécution de la peine privative de liberté en une mesure institutionnelle, lorsque la mesure n'a pas été formellement levée; la modification d'une mesure ambulatoire en une mesure institutionnelle doit respecter les conditions de l'<ref-law> (<ref-ruling> consid. 3.2 p. 448 et les références citées).
L'<ref-law> a été appliqué, sans plus d'explications, par la cour cantonale, laquelle a circonscrit son examen aux conditions du prononcé d'une mesure thérapeutique institutionnelle au sens de l'<ref-law>. Or, conformément à la jurisprudence rappelée, l'<ref-law> ne pouvait trouver application en l'occurrence.
3.2. Lorsque l'auteur souffre d'un grave trouble mental, est toxico-dépendant ou qu'il souffre d'une autre addiction, le juge peut ordonner un traitement ambulatoire au lieu d'un traitement institutionnel, si l'auteur a commis un acte punissable en relation avec son état et s'il est à prévoir que cette mesure le détournera de nouvelles infractions en relation avec son état (<ref-law>). Le traitement ambulatoire suppose en principe que l'auteur reste en liberté. Il peut toutefois être appliqué pendant l'exécution d'une peine privative de liberté, lorsque le traitement ambulatoire exécuté en liberté paraît dangereux pour autrui (cf. <ref-law>). La durée des mesures dépend des besoins de traitement de l'intéressé et des perspectives de succès de la mesure (cf. <ref-law>). La mesure est ordonnée sans égard au type et à la durée de la peine prononcée. Sont déterminants l'état des facultés mentales de l'auteur ainsi que l'impact de la mesure sur le risque de commission d'autres infractions (<ref-ruling> consid. 2.2 p. 447; <ref-ruling> consid. 2.3 p. 158 s.). Un traitement ambulatoire selon l'<ref-law> ne peut en règle générale excéder cinq ans, mais peut être prolongé à chaque fois de un à cinq ans; une telle prolongation est possible aussi souvent que cela est nécessaire. La mesure ne prend pas fin avec l'écoulement du temps, mais dure en principe le temps nécessaire pour que son but soit atteint ou jusqu'à ce qu'il paraisse exclu qu'il puisse l'être (<ref-ruling> consid. 2.2 p. 447; <ref-ruling> consid. 3.5 p. 240; <ref-ruling> consid. 2.1 p. 51 s.).
Une mesure dont les conditions ne sont plus remplies doit être levée (<ref-law>). Ainsi, l'autorité compétente ordonne l'arrêt du traitement ambulatoire si sa poursuite paraît vouée à l'échec (<ref-law>). L'échec du traitement ambulatoire ne doit pas être admis à la légère. La levée de la mesure doit faire l'objet d'un acte formel. A cet égard, les compétences sont partagées entre l'autorité d'exécution et le juge. Dans un premier temps, l'autorité d'exécution lève la mesure, puis, dans un second temps, le juge du fond se prononce sur les conséquences de la levée. Sous le titre marginal "Exécution de la peine privative de liberté suspendue", l'<ref-law> règle les conséquences de la levée du traitement ambulatoire exécuté en liberté. Selon la jurisprudence, cette disposition est également applicable à la levée d'un traitement ambulatoire exécuté en même temps que la peine privative de liberté (<ref-ruling> consid. 2.2 p. 447 et les références citées). Lorsque le traitement ambulatoire est levé à la suite de son échec, le tribunal doit déterminer si la peine privative de liberté suspendue doit être exécutée (<ref-law>) ou si une mesure thérapeutique institutionnelle selon les art. 59 à 61 CP doit être ordonnée (<ref-law>).
3.3. En l'espèce, il ressort de l'arrêt attaqué que le recourant a été mis au bénéfice d'un traitement ambulatoire, au sens de l'<ref-law>, par jugement du 15 février 2011. Cette mesure a été confirmée par jugement du 7 février 2014. L'autorité d'exécution n'a pas, par la suite, levé le traitement ambulatoire ni constaté que sa poursuite paraissait vouée à l'échec, cette mesure ayant uniquement été prise en compte par le tribunal de première instance qui, par son jugement du 15 février 2018, a entendu la lever afin de la remplacer par un traitement thérapeutique institutionnel. Il apparaît ainsi que le traitement ambulatoire ordonné en 2011 perdure actuellement, ce indépendamment du fait que les peines privatives de liberté prononcées contre le recourant par jugement du 7 février 2014 eussent désormais été purgées (cf. arrêt 6B_964/2015 du 14 octobre 2015 consid. 3.5.5). L'autorité d'exécution pouvait seule lever la mesure de traitement ambulatoire. Une telle décision pouvait ensuite, après l'épuisement de la voie de recours cantonale, faire l'objet d'un recours en matière pénale au Tribunal fédéral (cf. <ref-ruling> consid. 2.4 p. 52). Une fois la levée de cette mesure entrée en force, il appartenait au juge du fond, saisi, cas échéant, d'une demande de l'autorité d'exécution, de se prononcer sur les conséquences de cette décision, par exemple en ordonnant une mesure thérapeutique institutionnelle - au sens de l'<ref-law> - sur la base de l'<ref-law>. Cette décision pouvait ensuite, elle aussi, après l'épuisement de la voie de recours cantonale, faire l'objet d'un d'un recours en matière pénale au Tribunal fédéral (cf. arrêt 6B_253/2015 du 23 juillet 2015 consid. 2.3.1). Cette séparation des compétences - voulue par le législateur - pour lever une mesure, respectivement pour statuer sur les conséquences de cette levée, devait être observée en l'espèce, à défaut de quoi le recourant - dont le traitement ambulatoire a été levé par le même tribunal ayant simultanément prononcé une mesure thérapeutique institutionnelle - s'est vu privé d'une instance, respectivement d'une instance de recours (cf. 6B_253/2015 précité consid. 2.3.1). On rappellera que le fait que le recourant eût intégralement purgé les peines privatives de liberté auxquelles il avait été condamné ne faisait nullement obstacle à une telle procédure (cf. <ref-ruling> consid. 5.4 p. 4).
Par ailleurs, dès lors que le recourant a intégralement purgé ses peines privatives de liberté, le prononcé d'une mesure thérapeutique institutionnelle en lieu et place d'un traitement ambulatoire - sur la base de l'<ref-law> - ne pourrait intervenir, eu égard à l'atteinte importante à la liberté personnelle de l'intéressé qu'il suppose, qu'à titre exceptionnel (cf. <ref-ruling> consid. 5.4 p. 4; concernant les conditions d'une telle décision, cf. arrêts 6B_100/2017 du 9 mars 2017 consid. 5.4; 6B_994/2016 du 7 novembre 2016 consid. 1.2.2), dans le cadre d'une stricte application du principe de proportionnalité (cf. ATF <ref-ruling> consid. 2.6 p. 159 s.) et conformément aux exigences que la jurisprudence a en particulier déduites de l'art. 5 CEDH (cf. ATF <ref-ruling> consid. 3.2 et 3.3 p. 161 ss; cf. aussi arrêt 6B_338/2018 du 22 mai 2018 consid. 2.2.5-2.2.7). En l'occurrence, c'est en vain que l'on cherche, dans l'arrêt attaqué, une discussion de ces cautèles, l'autorité précédente ayant seulement examiné les conditions du prononcé d'une mesure thérapeutique institutionnelle selon l'<ref-law>.
En définitive, le recours doit être admis sur ce point, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale. Il appartiendra, dans un premier temps, à l'autorité d'exécution de lever le traitement ambulatoire ordonné par jugement du 15 février 2011 puis confirmé par jugement du 7 février 2014, avant que, le cas échéant et dans un second temps, la question du prononcé d'une éventuelle mesure thérapeutique institutionnelle - selon l'<ref-law> - puisse être examinée (cf. arrêt 6B_964/2015 précité consid. 3.5.6). Dès lors que le recourant a purgé les peines privatives de liberté auxquelles il avait été condamné et se trouve actuellement en détention pour des motifs de sûreté, il appartiendra aux autorités cantonales d'agir avec la plus grande diligence.
Compte tenu de ce qui précède, le Tribunal fédéral peut se dispenser, en l'état, d'examiner dans quelle mesure les conditions au prononcé d'une mesure thérapeutique institutionnelle au sens de l'<ref-law> auraient été réunies.
4.
Le recours doit être partiellement admis (cf. consid. 3.3 supra), l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision. Pour le surplus, le recours doit être rejeté. Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (<ref-law>). Il peut prétendre à des dépens réduits, à la charge du canton de Vaud (<ref-law>). Sa demande d'assistance judiciaire est sans objet dans la mesure où le recourant a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chances de succès s'agissant des aspects sur lesquels le recourant a succombé (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis. L'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision. Pour le surplus, le recours est rejeté.
2.
La demande d'assistance judiciaire est rejetée dans la mesure où elle n'est pas sans objet.
3.
Une partie des frais judiciaires, arrêtée à 400 fr., est mise à la charge du recourant.
4.
Le canton de Vaud versera au recourant une indemnité de 2'000 fr. à titre de dépens réduits pour la procédure devant le Tribunal fédéral.
5.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud, Chambre des recours pénale.
Lausanne, le 31 juillet 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa