Faits :
A.
Par jugement du 21 novembre 2017, le Tribunal correctionnel de l'arrondissement de Lausanne a reconnu X._ coupable de recel par métier, d'escroquerie et de blanchiment d'argent par métier; le prévenu a été condamné à une peine privative de liberté de quatre ans et demi.
L'appel intenté contre ce prononcé a été rejeté le 16 mai 2018 par la Cour d'appel pénale du Tribunal cantonal vaudois.
Par arrêt du 31 octobre 2018, le Tribunal fédéral a admis partiellement le recours formé contre ce jugement, retenant une période plus courte s'agissant de l'infraction d'escroquerie et libérant X._ du chef de prévention de blanchiment d'argent; la cause a été renvoyée à la Cour d'appel pénale, celle-ci devant notamment statuer à nouveau sur la peine (cause 6B_880/2018).
B.
A la suite de ce renvoi, la Cour d'appel pénale a, le 20 décembre 2018, reconnu X._ coupable d'escroquerie et de recel par métier (cf. ch. II/I du dispositif). Elle l'a condamné à une peine privative de liberté de trois ans et demi, sous déduction des jours de détention avant jugement subis (cf. ch. II/II et III du dispositif). Le maintien en détention pour des motifs de sûreté du prévenu a été ordonné (cf. ch. IV). Les frais d'appel antérieurs à l'arrêt du Tribunal fédéral du 31 octobre 2018, par 6'851 fr. 05, ont été mis par deux tiers, soit à raison de 4'567 fr. 35, à la charge de X._, le solde étant laissé à la charge de l'Etat (cf. ch. VI). Les frais d'appel postérieurs à l'arrêt du Tribunal fédéral du 31 octobre 2018, y compris l'indemnité allouée à Me A._, ont été laissés à la charge de l'Etat (cf. ch. X). Une indemnité réduite de 2'154 fr., TVA comprise, a été allouée à X._ pour les dépenses occasionnées par l'exercice raisonnable de ses droits pour la procédure d'appel antérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018 (cf. ch. VIII) et une indemnité de 753 fr. 90, TVA comprise, lui a été allouée pour les dépenses occasionnées par l'exercice raisonnable de ses droits pour la procédure d'appel postérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018, à la charge de l'Etat (cf. ch. XI). Une indemnité de défenseur d'office d'un montant de 1'389 fr. 30, débours et TVA compris, a été allouée à Me A._ pour la procédure d'appel postérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018 (cf. ch. IX).
C.
Le 21 décembre 2018, X._ a demandé sa mise en liberté immédiate, requête rejetée le 28 suivant par le Président de la Cour d'appel pénale. Par arrêt du 28 janvier 2019, le Tribunal fédéral a admis le recours formé contre cette décision et ordonné la libération immédiate de X._ (cause 1B_23/2019).
D.
X._ forme un recours en matière pénale contre l'arrêt du 15 janvier 2019 [recte: 20 décembre 2018] de la Cour d'appel pénale. Il conclut, avec suite de frais et dépens, à ce que les frais d'appel antérieurs à l'arrêt du Tribunal fédéral du 31 octobre 2018, par 6'851 fr. 05, y compris l'indemnité d'office de 2'741 fr. 05 allouée à Me B._ le 9 mai 2018, sont mis à sa charge dans une mesure sensiblement réduite fixée à dire de justice. Il conclut également à ce qu'une indemnité de 12'262 fr. 10, TVA comprise, lui est allouée pour les dépenses occasionnées par l'exercice raisonnable de ses droits pour la période allant du 20 février au 11 décembre 2018, à la charge de l'Etat de Vaud. Subsidiairement, il conclut à l'annulation du jugement entrepris et au renvoi de la cause à la Cour d'appel pénale pour nouvelle décision. Le recourant sollicite par ailleurs l'octroi de l'assistance judiciaire.
Considérant en droit :
1.
Invoquant la violation de l'art. 428 CPP, le recourant reproche à la cour cantonale d'avoir mis à sa charge deux tiers des frais de la procédure d'appel.
1.1. Aux termes de l'art. 428 al. 1 1ère phrase CPP, les frais de la procédure de recours sont mis à la charge des parties dans la mesure où elles ont obtenu gain de cause ou succombé. L'art. 428 al. 2 CPP régit les cas dans lesquels les frais de la procédure peuvent être mis à la charge de la partie recourante qui obtient une décision qui lui est plus favorable. Pour déterminer si une partie succombe ou obtient gain de cause, il faut examiner dans quelle mesure ses conclusions sont admises en deuxième instance (arrêts 6B_369/2018 du 7 février 2019 consid. 4.1 destiné à la publication; 6B_472/2018 du 22 août 2018 consid. 1.2 et les références citées). Lorsqu'une partie obtient gain de cause sur un point, mais succombe sur un autre, le montant des frais à mettre à sa charge dépend de manière déterminante du travail nécessaire à trancher chaque point (ibid.). Dans ce cadre, la répartition des frais relève de l'appréciation du juge du fond. Comme celui-ci est le mieux placé pour juger de son caractère approprié, le Tribunal fédéral s'impose une certaine retenue. Il n'intervient que si le juge du fond a excédé le large pouvoir d'appréciation qui lui est accordé sur ce point (ibid.).
1.2. En l'occurrence, l'autorité précédente a mis les frais d'appel antérieurs à l'arrêt du Tribunal fédéral du 31 octobre 2018 par deux tiers, soit à raison de 4'567 fr. 35, à la charge du prévenu, le solde étant laissé à la charge de l'Etat. Elle a indiqué que cette proportion découlait de l'abandon du chef de prévention de blanchiment qualifié et d'une partie de l'accusation d'escroquerie, au regard des infractions retenues et du rejet des autres conclusions d'appel (jugement entrepris, consid. 9.2).
1.3. Le recourant fait valoir que sa conclusion d'appel concernant sa mise en liberté immédiate a été rejetée par la cour cantonale avant d'être admise par l'arrêt du Tribunal fédéral du 28 janvier 2019, qui a souligné que dans la mesure où il avait effectué plus de trois quarts de la peine prononcée en appel, son maintien en détention violait le principe de la proportionnalité (1B_23/2019). Selon lui, il y a lieu de tenir compte, dans la répartition de la prise en charge des frais, des nombreux manquements commis par les autorités de première et seconde instance (notamment: peine de quatre ans et demi finalement réduite à trois ans et demi), son affaire ayant infatigablement nécessité la défense d'un avocat. Une réduction d'un tiers seulement des frais mis à sa charge alors qu'il avait obtenu gain de cause sur deux des trois infractions dont il devait répondre violait l'art. 428 CPP.
1.4. Le prononcé de libération immédiate du recourant par le Tribunal fédéral, rendu à l'issue d'un recours contre une autre décision cantonale (décision présidentielle du 28 décembre 2018), est sans effet sur le jugement attaqué et n'influe donc pas sur la répartition des frais judiciaires résultant de ce jugement. Par ailleurs, les frais d'appel postérieurs à l'arrêt du Tribunal fédéral du 31 octobre 2018 ont été entièrement laissés à la charge de l'Etat, de sorte que le recourant n'a pas subi de préjudice du fait que son affaire a dû être jugée une nouvelle fois par la cour cantonale à la suite de l'arrêt de renvoi du Tribunal fédéral.
Les conclusions prises par le recourant à l'encontre de sa culpabilité n'ont été que partiellement admises puisque l'aggravante du recel par métier - infraction la plus grave selon la cour cantonale (cf. jugement attaqué, consid. 3.2) - a été confirmée, de même que le chef d'accusation d'escroquerie, dont la période pénale a toutefois été réduite (deux ans et demi au lieu de quatre ans environ). Compte tenu également de sa libération de l'infraction de blanchiment d'argent, la cour cantonale a réduit la peine privative de liberté de quatre ans et demi à trois ans et demi. Par ailleurs, les conclusions du recourant relatives à la révocation des sursis antérieurs, à sa libération immédiate et à l'indemnisation de son tort moral pour la détention dans des conditions illicites ont été écartées. Au vu des points sur lesquels le recourant a gagné et ceux sur lesquels il a succombé en appel, le principe de la mise à charge des frais de procédure à raison des deux tiers ne viole pas encore le large pouvoir d'appréciation dont disposait la cour cantonale en la matière.
2.
Le recourant critique le montant alloué à titre d'indemnité pour ses dépenses obligatoires occasionnées par la procédure d'appel. Invoquant la violation de son droit d'être entendu, il soutient que la réduction, par la cour cantonale, du montant réclamé ne repose sur aucune motivation. Cette réduction n'est de surcroît pas justifiée au regard de la complexité du dossier, de son important volume et de la nécessité avérée des interventions de son conseil.
2.1.
2.1.1. Selon l'art. 429 al. 1 CPP, applicable également à la procédure d'appel par le renvoi de l'art. 436 al. 1 CPP, le prévenu acquitté totalement ou en partie ou au bénéfice d'une ordonnance de classement a droit à une indemnité notamment pour les dépenses occasionnées par l'exercice raisonnable de ses droits de procédure (let. a). En vertu de l'art. 429 al. 2 CPP, l'autorité pénale examine d'office les prétentions du prévenu et peut l'enjoindre de les chiffrer et de les justifier.
Selon la jurisprudence, l'indemnité doit correspondre au tarif usuel du barreau applicable dans le canton où la procédure se déroule (arrêts 6B_47/2017 du 13 décembre 2017 consid. 1.1; 6B_111/2017 du 17 octobre 2017 consid. 4.1). Aux termes de l'art. 26a du Tarif vaudois des frais de procédure et indemnités en matière pénale (TFIP/VD; RS/VD 312.03.1), les indemnités allouées selon les articles 429 ss CPP à raison de l'assistance d'un avocat comprennent une indemnité pour l'activité de l'avocat ainsi que le remboursement des débours effectifs de celui-ci (al. 1). L'indemnité pour l'activité de l'avocat est fixée en fonction du temps nécessaire à l'exercice raisonnable des droits de procédure, de la nature des opérations effectuées, des difficultés de la cause, des intérêts en cause et de l'expérience de l'avocat (al. 2). Le tarif horaire déterminant (hors TVA) est de 250 fr. au minimum et de 350 fr. au maximum pour l'activité déployée par un avocat. Il est de 160 fr. pour l'activité déployée par un avocat stagiaire (al. 3). Dans les causes particulièrement complexes ou nécessitant des connaissances particulières, le tarif horaire déterminant peut être augmenté jusqu'à 400 fr. (al. 4).
La question de l'indemnisation (art. 429 à 434 CPP) doit être traitée après celle des frais (arrêts 6B_1268/2018 du 15 février 2019 consid. 4.1; 6B_1258/2018 du 24 janvier 2019 consid. 3.1; 6B_474/2018 du 17 décembre 2018 consid. 2.2). Dans cette mesure, la décision sur les frais préjuge de la question de l'indemnisation (ATF 137 IV 352 consid. 2.4.2 p. 357; cf. récemment: arrêts 6B_1268/2018 précité consid. 4.1; 6B_1258/2018 précité consid. 3.1).
2.1.2. En vertu de l'art. 112 al. 1 let. b LTF, les décisions qui peuvent faire l'objet d'un recours au Tribunal fédéral doivent indiquer les motifs déterminants de fait et de droit sur lesquels l'autorité s'est fondée. Si la décision attaquée ne satisfait pas à ces exigences, le Tribunal fédéral peut soit la renvoyer à l'autorité cantonale en invitant celle-ci à la parfaire, soit l'annuler (art. 112 al. 3 LTF). Cette disposition concrétise le droit d'être entendu (art. 29 al. 2 Cst. et art. 6 par. 1 CEDH) dont la jurisprudence a déduit le devoir pour l'autorité de motiver sa décision, afin que le destinataire puisse la comprendre et la contester utilement s'il y a lieu et que l'autorité de recours puisse exercer son contrôle (cf. ATF 141 IV 249 consid. 1.3.1 p. 253; 139 IV 179 consid. 2.2 p. 183; arrêt 6B_819/2018 du 25 janvier 2019 consid. 3.1).
Selon la jurisprudence rendue en matière de dépens, la garantie du droit d'être entendu implique que lorsque le juge statue sur la base d'une liste de frais, il doit, s'il entend s'en écarter, au moins brièvement indiquer les raisons pour lesquelles il tient certaines prétentions pour injustifiées, afin que son destinataire puisse attaquer la décision en connaissance de cause (cf. arrêts 6B_1410/2017 du 15 juin 2018 consid. 3.1; 6B_124/2012 du 22 juin 2012 consid. 2.2 et les références citées).
2.2. Le recourant a conclu à l'allocation d'un montant de 12'262 fr. 10, TVA en sus, à titre d'indemnité fondée sur l'art. 429 al. 1 let. a CPP. Selon ses indications, ce montant résultait de 52h45 d'activité d'avocat entre le 20 février et le 20 décembre 2018 à un tarif horaire de 350 fr. (à teneur de la note de frais produite, le dernier poste d'activité est daté du 10 décembre 2018, soit avant la désignation de nomination d'office du 11 décembre 2018 [cf. pièce n° 271 du dossier cantonal]) et d'une réduction d'un tiers compte tenu du fait qu'il n'avait eu que partiellement gain de cause.
2.3. La cour cantonale a considéré qu'une indemnité réduite devait être allouée au recourant pour les dépenses occasionnées par l'exercice raisonnable de ses droits pour la procédure d'appel antérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018. Cette indemnité devait être fondée sur une activité d'avocat d'une durée de 20h à 300 fr. de l'heure (art. 26a al. 3 TFIP), avant réduction. Réduite dans la proportion applicable aux frais, à savoir des deux tiers, elle devait être arrêtée à 2'000 fr., débours compris, soit 2'154 fr. TVA comprise. En outre, pour la procédure d'appel postérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018 jusqu'au 10 décembre 2018, l'indemnité était arrêtée à 753 fr. 90, TVA comprise, sur la base d'une durée d'activité d'avocat de 2h20 à 300 fr. de l'heure (art. 26a al. 3 TFIP).
2.4. La mise à la charge du recourant des frais de la procédure d'appel antérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018 à raison des deux tiers entraîne son indemnisation dans les mêmes proportions (cf. consid. 2.1.1 in fine supra), ce que le recourant ne paraît pas discuter en soi.
La cour cantonale a opéré par ailleurs une réduction importante des heures d'activité d'avocat retenues. En effet, alors que le recourant a allégué une activité d'avocat de 52h45 jusqu'au 10 décembre 2010, la cour cantonale n'a retenu que 22h20 pour la même période (20h + 2h20). Elle n'a toutefois pas spécifié les postes de la liste de frais déposée par le recourant qu'elle jugeait superflus ou pour lesquels le nombre d'heures indiqué était surfait. L'autorité précédente n'a pas non plus indiqué les motifs qui l'ont conduite à retenir un tarif horaire de 300 fr. et non de 350 fr. comme réclamé par le recourant, lequel justifiait sa demande en se prévalant de la complexité juridique du dossier. Faute de toute explication liée aux difficultés présentées par la cause ou aux prestations qu'elle nécessitait, la cour cantonale n'a pas justifié sa décision de s'écarter de la note de frais produite par le recourant. Le jugement attaqué ne répond donc pas aux réquisits de l'art. 112 al. 1 let. b LTF et rend impossible la vérification de la correcte application de l'art. 429 CPP. Il doit par conséquent être annulé sur ce point.
3.
Il découle de ce qui précède que le recours doit être partiellement admis (cf. consid. 2 supra), l'arrêt attaqué annulé et la cause renvoyée à la cour cantonale pour nouvelle décision. Pour le reste, il doit être rejeté (cf. consid. 1 supra). Au regard de la nature procédurale du vice examiné, et dès lors que le Tribunal fédéral n'a pas traité la cause sur le fond, ne préjugeant ainsi pas de l'issue de la cause, il peut être procédé au renvoi sans ordonner préalablement un échange d'écritures (cf. ATF 133 IV 293 consid. 3.4.2 p. 296; arrêt 6B_1024/2016 du 17 novembre 2017 consid. 3).
Le recourant supporte des frais réduits en raison de l'issue de la procédure et de sa situation financière (art. 65 al. 2 et 66 al. 1 LTF). Il peut prétendre à des dépens réduits à la charge du canton de Vaud (art. 68 al. 1 LTF). Sa demande d'assistance judiciaire est sans objet dans la mesure où il a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chance de succès s'agissant des aspects sur lesquels il a succombé (art. 64 al. 1 LTF).
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 à 600 fr., est mise à la charge du recourant.
4.
Le canton de Vaud versera au recourant une indemnité de 1'500 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 à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 29 mars 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy