Faits :
A.
Par jugement du 21 novembre 2017, le Tribunal correctionnel de l'arrondissement de Lausanne a reconnu A._ coupable de recel par métier, d'escroquerie et de blanchiment d'argent par métier et l'a 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 A._ 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 A._ coupable d'escroquerie et de recel par métier. 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. 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 A._, le solde étant laissé à la charge de l'Etat. 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 B._, ont été laissés à la charge de l'Etat. Une indemnité réduite de 2'154 fr., TVA comprise, a été allouée à A._ 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 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. 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 B._ pour la procédure d'appel postérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018.
Par arrêt du 29 mars 2019, le Tribunal fédéral a admis partiellement le recours formé contre le jugement du 20 décembre 2018, considérant en substance que le jugement attaqué ne répondait pas aux réquisits de l'<ref-law> et rendait dès lors impossible la vérification de la correcte application de l'<ref-law> (cause 6B_248/2019).
C.
Le 24 juillet 2019, la Cour d'appel pénale a rendu un nouveau jugement confirmant le montant des indemnités allouées à A._ dans le jugement du 20 décembre 2018. Ainsi, une indemnité réduite de 2'154 fr., TVA comprise, a été allouée à A._ 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 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.
D.
A._ forme un recours en matière pénale contre l'arrêt du 1er octobre 2019 [recte: 24 juillet 2019] 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 C._ 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 procédure d'appel antérieure à l'arrêt du Tribunal fédéral du 31 octobre 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.
1.1. Par arrêt de renvoi du 29 mars 2019, le Tribunal fédéral a constaté qu'alors que le recourant alléguait une activité d'avocat de 52h45 jusqu'au 10 décembre 2018, la cour cantonale n'avait retenu que 22h20 pour la même période. L'autorité précédente n'avait 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. Elle n'avait pas non plus indiqué les motifs qui l'avaient 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. Aussi la cause lui était-elle renvoyée afin qu'elle motive sa décision de s'écarter de la note de frais du recourant (arrêt 6B_248/2019 du 29 mars 2019 consid. 2.2-2.4).
1.2. Dans le jugement attaqué, la cour cantonale a constaté que sa cognition était limitée au calcul de l'indemnité devant être allouée au recourant en application de l'<ref-law> au titre des heures d'activité d'avocat retenues jusqu'au 10 décembre 2018 inclus, soit jusqu'à la veille de la désignation du défenseur de choix du recourant en qualité de défenseur d'office. Elle a considéré, au regard de la complexité de la cause, du volume du dossier ainsi que du fait que la déclaration d'appel motivée contre le jugement du 21 novembre 2017 avait déjà été déposée lors de la reprise du mandat par le défenseur de choix, qu'il n'existait aucun motif de retenir un tarif horaire de 350 fr., proche de la limite supérieure de 400 francs. Elle a constaté par ailleurs que les opérations de la liste de frais du recourant comprises entre le 13 juillet et le 7 novembre 2018 inclus relevaient de la seule procédure devant le Tribunal fédéral et ne sauraient être indemnisées au titre de la procédure cantonale. Elle a estimé que certains postes d'activité allégués par le recourant (correspondance, vacations en prison et préparation de l'audience d'appel) devaient être réduits au regard des heures utiles à la défense du client et a ainsi retenu un total de 22 heures et 20 minutes, indemnisées au tarif de 300 fr. de l'heure.
2.
Le recourant conclut à une réduction des frais d'appel mis à sa charge et à l'allocation d'une indemnité pour ses dépenses obligatoires occasionnées par la procédure fixée dans les mêmes proportions. Ce faisant, il omet que le principe de la mise à sa charge des frais de procédure à raison des deux tiers, impliquant une indemnisation réduite dans cette même mesure, a été définitivement confirmé par le Tribunal fédéral dans son arrêt du 29 mars 2019. Ces conclusions, au demeurant dépourvues de motivation, sont ainsi irrecevables.
3.
Le recourant invoque la violation des art. 429 et 436 al. 2 CPP.
3.1. Aux termes de l'<ref-law>, si le prévenu est acquitté totalement ou en partie ou s'il bénéficie d'une ordonnance de classement, il a droit à une indemnité pour les dépenses occasionnées par l'exercice raisonnable de ses droits de procédure. L'indemnité couvre en particulier les honoraires d'avocat, à condition que le recours à celui-ci procède d'un exercice raisonnable des droits de procédure. L'Etat ne prend en charge les frais de défense que si l'assistance d'un avocat était nécessaire compte tenu de la complexité de l'affaire en fait ou en droit et que le volume de travail et donc les honoraires étaient ainsi justifiés (<ref-ruling> consid. 2.1 p. 47).
Savoir si le recours à un avocat procède d'un exercice raisonnable des droits de procédure et si, par conséquent, une indemnité pour les frais de défense selon l'<ref-law> peut être allouée au prévenu, est une question de droit fédéral que le Tribunal fédéral revoit librement (<ref-ruling> consid. 3.2.1 p. 169). C'est en premier lieu aux autorités pénales qu'il appartient d'apprécier le caractère raisonnable de l'activité de l'avocat et elles disposent dans ce cadre d'un pouvoir d'appréciation considérable. Le Tribunal fédéral s'impose par conséquent une certaine retenue lors de l'examen de l'évaluation faite par l'autorité précédente; il n'intervient que lorsque celle-ci a clairement abusé de son pouvoir d'appréciation et que les honoraires alloués sont hors de toute proportion raisonnable avec les prestations fournies par l'avocat (<ref-ruling> consid. 3.2.1 p. 169).
Selon la jurisprudence, l'indemnité doit correspondre au tarif usuel du barreau applicable dans le canton où la procédure se déroule (<ref-ruling> consid. 3.1.2 p. 169; arrêt 6B_565/2019 du 12 juin 2019 consid. 6.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).
D'après l'<ref-law>, les prétentions en indemnités et en réparation du tort moral dans la procédure de recours, respectivement d'appel, sont régies par les art. 429 à 434 CPP. Selon l'<ref-law>, si ni un acquittement total ou partiel, ni un classement de la procédure ne sont prononcés mais que le prévenu obtient gain de cause sur d'autres points, il a droit à une juste indemnité pour ses dépenses.
3.2. Le recourant reproche à l'autorité précédente d'avoir appliqué un tarif horaire de 300 fr. pour calculer l'indemnité fondée sur l'<ref-law>. Il fait valoir que le tarif horaire usuel dans le canton de Genève est de 400 à 450 fr. et que le tarif auquel il prétend, soit 350 fr. de l'heure, correspond au tarif facturé par son défenseur.
Le Tribunal fédéral a déjà jugé que l'indemnité visée par l'<ref-law> est calculée sur la base du tarif usuel du canton où se déroule la procédure. Un canton ne peut pas être tenu d'appliquer le tarif d'un autre canton (<ref-ruling> consid. 3.1.2 p. 167 ss). Il n'est pas non plus lié par une convention d'honoraires passée entre le prévenu et son avocat (<ref-ruling> consid. 3.1.2 p. 169). C'est donc à juste titre que la cour cantonale a fixé le tarif horaire dans la fourchette fixée par l'art. 26a al. 3 TFIP/VD, et non en se fondant sur le tarif pratiqué à Genève ou facturé par le défenseur du recourant.
Le recourant critique également l'évaluation faite par la cour cantonale de la complexité de la cause. Cependant, il ne remet pas en question les constatations cantonales sur ce point, à savoir que les chefs de prévention portaient sur des faits étroitement délimités et interdépendants, que le mode opératoire des actes de recel était identique à chaque reprise et pas particulièrement complexe, que l'acte de blanchiment d'argent était limité à des virements effectués au crédit d'un unique compte bancaire, que l'escroquerie consistait en la seule dissimulation de ressources (soit le compte bancaire précité) aux services sociaux, que les questions litigieuses en appel étaient essentiellement de fait et non de droit, ou encore que les questions relatives à la quotité de la peine, le sursis et la révocation des sursis antérieurs n'avaient rien d'inhabituel. En tant qu'il se limite essentiellement à railler le raisonnement cantonal et à rappeler les points matériels sur lesquels il a obtenu gain de cause, le recourant ne démontre pas en quoi, au vu du cas d'espèce, la cour cantonale aurait abusé de son pouvoir d'appréciation en fixant un tarif correspondant à la moyenne entre le minimum et le maximum prévus par l'art. 26a al. 3 1ère phrase, TFIP/VD. On peut encore ajouter que le fait qu'il s'agisse d'infractions économiques ne signifie pas nécessairement que la cause était complexe, ce qui ressort d'ailleurs clairement de la motivation cantonale. En définitive, il n'apparaît pas que la cour cantonale aurait excédé la grande latitude dont elle jouit en fixant le tarif horaire à l'intérieur de la fourchette à disposition.
4.
Le recourant s'en prend à la réduction des heures opérée par la cour cantonale pour la période antérieure à l'arrêt du Tribunal fédéral du 31 octobre 2018 (du 20 février au 12 juillet 2018). En ce qui concerne la réduction opérée pour la période postérieure à l'arrêt de renvoi du Tribunal fédéral (du 8 novembre au 10 décembre 2018), le recourant ne prend pas de conclusions formelles; on comprend cependant qu'il critique le montant de l'indemnité allouée, mais en se limitant à se reporter à ses développements en lien avec la période antérieure. Les deux périodes seront donc traitées indistinctement ci-dessous. Pour le surplus, le recourant ne discute pas le fait que la cour cantonale ait écarté les opérations comprises entre le 13 juillet et le 7 novembre 2018, soit 19 heures et 20 minutes, considérant qu'elles relevaient de la seule procédure devant le Tribunal fédéral.
4.1. La cour cantonale a considéré que les correspondances envoyées ou reçues relevaient de tâches de secrétariat, de sorte qu'elles ne sauraient être prises en compte séparément, mais exclusivement à titre global. Elle a ainsi retenu une heure au titre de tâches de secrétariat ne pouvant être entièrement déléguées (courriers et téléphone) pour la période du 20 février au 12 juillet 2018 et 25 minutes pour la période du 8 novembre au 10 décembre 2018 (soit 2h20 - 1h25 - 30 min, cf. jugement attaqué, consid. 5.3). Sur ce point, le recourant fait valoir que son conseil ne dispose pas de secrétaire, de sorte qu'il a effectué ces tâches lui-même. Il n'en demeure pas moins qu'il ne peut prétendre à une rémunération correspondant à une activité d'avocat pour un travail de secrétariat. L'argument est ainsi sans fondement.
4.2. De l'avis de la cour cantonale, les vacations en prison des 19 avril, 9 mai, 5 juin et 6 juillet 2018 étaient trop nombreuses et rapprochées pour trouver une pleine justification. Qui plus est, les deux dernières étaient postérieures à l'audience d'appel du 16 mai 2018 et à la notification du jugement rendu le même jour; elles ne pouvaient donc plus être utiles à la défense du prévenu mais relevaient du soutien. La cour cantonale n'a dès lors retenu que la visite en prison du 19 avril 2018, d'une durée de deux heures et demie, vacation comprise. Par ailleurs, elle a constaté que l'audience d'appel du 16 mai 2018 figurait sur la liste de frais pour une durée de trois heures, vacation comprise, avec mention " Entretien avec le client ". L'audience avait duré une heure et 38 minutes. L'autorité précédente a considéré que la durée à prendre en compte au titre de l'audience incluait la vacation et l'entretien avec le client. La durée de trois heures figurant sur la liste devait donc être retenue. En cela, la cour cantonale a donc retenu deux entretiens client pour les mois d'avril et de mai, soit un par mois, ce qui correspond en définitive au minimum que le recourant estime justifié. Par ailleurs, il ne dit pas en quoi la cour cantonale aurait abusé de son pouvoir d'appréciation en considérant que les visites postérieures au jugement constituaient des démarches allant au-delà de la défense strictement dite du prévenu. Aussi une violation du large pouvoir d'appréciation dont dispose la cour cantonale n'est-elle pas établie.
4.3. La cour cantonale a considéré que la durée de sept heures et 45 minutes indiquée par le recourant pour le poste " Recherches juridiques et préparation de l'audience d'appel au Tribunal cantonal. Rédaction d'une plaidoirie et préparation d'un chargé de pièces " du 14 mai 2018 était excessive au regard des opérations utiles, une durée de six heures apparaissant adéquate. En effet, le jugement frappé d'appel avait déjà fait l'objet d'une déclaration d'appel déposée par le précédent défenseur et d'une analyse d'une durée de deux heures et 45 minutes le 2 mai 2018, ce qui était à l'évidence de nature à fournir d'amples éléments à la rédaction de la plaidoirie d'appel. Ainsi que cela ressortait de la durée de l'audience (1h38 minutes incluant notamment l'interrogatoire du recourant et le réquisitoire de la Procureure), cette plaidoirie (à deux débattues) n'était pas d'une ampleur particulière. Les opérations du 14 mai 2018 apparaissaient ainsi en partie redondantes par rapport à celles du 2 mai précédent. L'autorité précédente a toutefois tenu compte du fait que les conclusions d'appel avaient été modifiées en plaidoirie.
Le recourant soutient qu'à la lecture de la déclaration d'appel motivée, le Tribunal fédéral pourra se faire sa propre idée de l'appui qu'a pu représenter cette écriture pour le conseil soussigné dans la défense des intérêts de son client. Par cette formule elliptique, le recourant ne motive pas son grief à satisfaction de droit (cf. <ref-law>). En effet, il lui appartenait à tout le moins de démontrer dans quelle mesure son nouveau conseil avait élaboré une stratégie de défense et des arguments différents de ceux initialement présentés par son ancien défenseur. Le recourant fait aussi valoir que la plaidoirie de son conseil a duré plus d'une heure. Il n'en découle pas encore que l'appréciation cantonale quant à l'ampleur de la plaidoirie serait insoutenable, ni que le nombre d'heures jugées utiles par la cour cantonale en vue de la préparation de l'audience serait abusif, compte tenu de la durée totale de l'audience et de la redondance, mise en exergue par la cour cantonale, entre les opérations du 14 mai 2018 et celles du 2 mai précédent. Au vu de son large pouvoir d'appréciation, la réduction d'une heure et 45 minutes opérée par la cour cantonale n'apparaît pas excessive.
5.
De manière plus générale, le recourant soutient que la réduction des heures et du tarif appliqué par l'avocat revient en pratique à nier à tout individu le droit à une véritable défense. De la sorte, il ne formule pas de grief recevable sous l'angle d'une violation d'un droit fondamental, qui requiert une motivation stricte (<ref-law>). Au reste, le recourant semble méconnaître qu'il ne bénéficiait alors pas de l'assistance judiciaire et était ainsi considéré comme apte à payer lui-même ses honoraires d'avocat - ce qu'il ne remet pas en cause -, déterminés sur la base d'un contrat de nature privée avec son défenseur de choix, de sorte qu'on ne voit pas en quoi l'Etat répondrait ici d'une atteinte aux droits de la défense.
Pour le surplus, les propos désobligeants et irrespectueux qui émaillent l'intégralité de l'écriture du recourant n'apportent rien d'utile à la défense de ses intérêts et n'ont pas leur place dans un recours au Tribunal fédéral, en aucun cas le lieu d'une telle diatribe à l'encontre d'une juridiction cantonale. Le conseil signataire du recours est invité, à l'avenir, à s'abstenir de tout propos inconvenant (cf. <ref-law>).
6.
Compte tenu de ce qui précède, le recours doit être rejeté dans la mesure où il est recevable. Comme il était dénué de chances de succès, la demande d'assistance judiciaire doit être rejetée (<ref-law>). Le recourant, qui succombe, supportera les frais judiciaires (<ref-law>), dont le montant sera fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
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 27 janvier 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy