I chose to implement difficulty by adjusting the spawnrate.
I put functionality inside the LevelController class to read the difficulty and cache the value.
Then, the AttackSpawners call a method in the LevelController on start to find out what the difficulty is and use that to adjust min and max spawn values.
Having the difficulty cached inside the LevelController I think is a good place because then multiple classes could check it and adjust - including base health like you did - versus them calling the PlayerPrefsController to read that value from disk each time.