1) The difficulty setting gives the NPC different base stats depending on the level, scaling: damage, hp, resistance, ... It is not very precise but I use to think Normal difficulty is a regular kill for an equally leveled player, AboveNormal requires a little bit more, Hard0 is a more group oriented fight and Hard9 is basically a raid fight.
2) For regular "trash" NPCs I usually do not add any flags, sometimes see invis and sometimes some immunity if it feel natural. As for more important/story/quest NPCs I usually also add ImmuneToCharm and ImmuneToSummon (you should really do this to prevent someone from charming a quest NPC). Then add more flags to increase the difficulty, feel free to experiment.
3) I guess you are referring to the Attributes? It is a more advanced feature that you can use if you for instance want a specific NPCs to have much more HP than it comes with out of the box with the given Difficulty. Or you can tweak damage etc. Only use this for specific requirements/features, not to balance the game/npc.