So, after many hours of mental gymnastics and frustrating results that didn't match up due to weird chapter scaling value increase;
A look at how enemy stats work in Fates:
So, firstly, like previous Fire Emblem games, enemies have their own growths, however enemies have no personal growths, but rather, classes themselves have a different set of growths used for enemies. How do we figure out these growths?
Easy! You can see a full list of all enemy class growths here, any class not listed in here has no growths (like Silent Dragon or Blight Dragon).
How Scaling works:
There are 3 types of enemy stat scaling in Fates, Story Scaling, Paralogue Scaling, and Manual Scaling, but first, we need to understand how stats work in Fates.
The way that Fates handles stats is as follows, (CharacterPersonalBases) + (ClassBases) = TotalBases
An example of this is Chapter 1 Enemy Xander. Paladin Class has a base Defense of 7, Chapter 1 Xander has a personal base Defense of -6, so adding these two together, -6 + 7 = 1 Defense, which is exactly Xander's defense stat in Chapter 1.
So with that explained, here's how stat scaling works.
This one is simple, using the above enemy growths, Intelligent Systems manually set levels for every enemy, and based on the level that the enemies were given, they will gain stats from level 1 to that level, some enemies may have lower stats than expected (like in Birthright) because, like Chapter 1 Xander, they can be given negative personal bases.
This one is a bit different, but it goes hand in hand with the player's story progress.
The scaling is a bit different, but it still works by giving the character growths equivalent to X levels, and it works like this;
Story chapters have a "scale" value, and characters will scale according to the difference between the value that was set in their character block vs the value for the chapter. If that value is less than or equal to the value from the PREVIOUSLY completed chapter then it'll scale according to the difference. For the most part, this value goes up by one until completing chapter 14 where it will alternate going up by two and one until chapter 18, where it'll only go up by two.
So for example, say you have an enemy unit with a scale value of 10, and your current chapter progress says the value is 38 (you just completed Chapter 26, and are 27 now, scale value of chapter 26 is 38), the unit will gain (38-10, so 28) levels worth of stats (and actual levels), do note that stat caps and level caps will still apply, so if the unit was originally a promoted level 10 unit, it will only gain 10 levels worth of stats (from 10 to 20) unless Eternal Seals were used.
On the other hand, say you set an unpromoted level 1 enemy, and the scale value is 01, this means the unit would gain (38-1, meaning they gain 37) levels worth of stats, meaning you'd end up with a promoted lv18 Unit. Yes, this also promotes the unit should it be needed, and growths are calculated using the base class for the first 20 levels, and after promotion, the promoted class growths are then used.
How do Paralogue enemies scale then?
Unpromoted Enemies have a scaling value of 10, any prepromoted enemies have a scaling value of 15 instead.
But DeathChaos, where do I even get the data for the scale values by chapter?
Simple! Get it from here!
Remember, you need to use the scale value from the PREVIOUS chapter, not your current chapter.
Let's take Sophie's paralogue for example (Paralogue 05).
This chapter has a Fighter of lv10, being an unpromoted paralogue enemy means his scale value is 10.
Taking that into consideration, say you attempt this paralogue on Chapter 18, this means you take the scale value of chapter 17, which is 20, using the formula (ChapterScaleValue) - (UnitScaleValue), we get (20) - (10), meaning this unit would gain 10 levels, netting you a lv20 Fighter when attempting this Paralogue on Chapter 18.
This one is easy and simple.
Instead of having the unit scale with growths and levels, these units are simply given personal base stats and a level by hand, this is the scaling method used for all important and named enemy units, like Xander from chapter 1, Kaze/Rinkah from chapter 2, Takumi and retainers from Conquest Chapter 10, Camilla and her Retainers in Chapter 23 of Birthright, etc.
How Difficulty bonuses factor into stats:
Ok, so after having explained how scaling for enemies work, how does difficulty stat bonus fall into all of this?
Well, simple really.
Just like Manual Scaling, Difficulty bonuses are hand set, individually on a per unit basis, meaning that unless they were set that way on purpose, no 2 different units would have the same bonuses, nor is there a "formula" to calculate these, as they are manually set.
The way these bonuses work is, they use the "Hard" difficulty as the "base" difficulty, no stat bonuses are applied on hard, however, on Normal difficulty, the unit can have a set of "stat penalties", so from Hard to Normal, units can lose X amount of points in Y stat, again, this is set manually.
Lunatic works by gaining stats from Hard difficulty, again, manually set, however, there is a pattern to these.
Birthright usually only gives +2/+3 Bonus HP from Hard to Lunatic.
Conquest usually does not give Lunatic stat bonuses except for very rare cases.
Revelation however, is the odd one out, it just gives whatever bonuses it feels like to whatever units, as an edge case, we have the infamous Chapter 9 Oni Savages.
Because Hard to normal has stat penalties, it gives the illusion of stat increase from normal to hard, so going by this standard;
From Normal to Hard, the stat changes for this Oni are +4 HP/+4 str/+1 spd/+3 def.
From Hard to Lunatic these units gain +3 HP/ +2 Str/ +1 speed/ +2 Def.
Think that's crazy? Here's an even worse edge case with the same unit.
A player who plays Revelation on Normal first, then plays on Lunatic, will see that these Oni Savages have gained, from Normal to Lunatic, a total stat bonus of +7 HP/ +6 Str/ +2 Spd/ +5 Def, to say that this seems insane is an understatement.
Why do Birthright enemies seem to have worse stats then?
Simple, because story enemies scale to the level they were manually set, and because Birthright enemies are actually a few levels behind the expected average level, as a result they end up lacking in the necessary stats because they scaled to a level that was below the expected average.