Unfortunately, with the current implementation, there’s no way you can use an expression to generate different styles for different characters within the same text layer. All characters end up with the same styling as the first character.
My guess is that you have File > Project Settings > Expressions set to Legacy Extendscript. But in any case, you won’t be able to set more than one Font for a single text layer.
I think the main thing is that you’re trying to loop through the project items while you’re adding items. Without knowing how you have things set up, I’d guess you should probably first put all the comps you want to duplicate into an array and then loop through that.