You know you need to signpost your actions – but something I’ve learned in my – cough – years of DMing is that often when I think I’m making something incredibly obvious, my players think I’m dropping tiny hints at best.
You mentioned you’re currently using things like letters on the dead guards and the actions of authorities. Do your players see these letters at all? Do the letters adequately explain the situation? If it’s something like this one, while it may suffice to make your players feel guilty about killing that guard, it isn’t necessarily indicative that the players are the bad guys. Likewise, if you haven’t sufficiently established the nature of the authorities or the government (likely not given the players perceive it as “unjust”), the players have no reason to assume it’s anything else.
Remember, your players are operating under typical RPG assumptions, which is that PCs are the heroes no matter what acts of criminality they get up to. Think about Link smashing pots in random people’s houses, or Cloud slaughtering dozens of ShinRa guards. The plot still frames both Link and Cloud as heroes, in part because of Gameplay and Story Segregation, which requires the game to provide challenges and loot to the players even when it’s not strictly logical; but also because that’s just how RPGs tend to work.
In other words, you’ve answered your own question: you simply need to signpost more effectively.
In particular, focus on telegraphing to the players what their actions look like to innocent people of the country, and make it at least twice as obvious as you think you need to. Have villagers run away when the party approaches, screaming for help because “those mercenaries from $HomeCountry are here!”. Have “wanted” posters everywhere, which specifically talk about the players’ actions in terms that you’d normally see on a Disney villain’s rap sheet. Have the next batch of heroes, as you suggested, try talking to the PCs before attacking, and use language specifically describing them as bad guys, such as “Halt, $HomeCountry soldiers! We know you have come to our nation to scout our defenses and assassinate our leaders. You have butchered our guards and allied with that most ancient of evils, a lich. Come peacefully and your deaths will be swift and painless, or stand and die like the villains you are!”
As @Mark Gardner noted in a comment and @Icyfire in an answer, it’s especially important to use signposts which the PCs have reason to trust or believe. This could be friends of the PCs who say, “Man, you guys are getting pretty scary, just slaughtering all those guards like it’s nothing…” and act generally hesitant around them; or trustworthy authority figures (if you have clerics, paladins, or similar religious characters, a priest or other religious authority can be very useful here) who comment that the PCs are useful and effective, but “if you weren’t working for me I’d have arrested you by now”.
The point here is that your players likely haven’t caught on to how they’re seen in this new country. They have no reason to believe their actions are not being ignored in typical RPG fashion – all they see is random encounters and boss fights. You need to make clear to them, repeatedly and excruciatingly from trustworthy sources, that this is not the case.
(As a side note, your players might well choose to continue as they have been, and run with their reputation as villains. Since you say you’re fine running an evil party, there’s nothing wrong with that, but at that point you’ll want to break character and have a brief “Session Zero 2.0” where you check in with the players that this is, in fact, what they want.)