Zu der Untergrundveränderung:
1) Ich weiß nicht, ob das jetzt die beste Lösung dafür ist, aber ich würde es so machen wie mit den anderen Festungsupgrades. Ich mache mal ein Beispiel für die Elbenfestung. 
Ich hätte das jetzt über einen neuen Eintrag in den Art-Parametern gemacht, der könnte dann ungefähr so aussehen.
	Draw = W3DScriptedModelDraw ModuleTag_DrawUntergrund
		OkToChangeModelColor	= Yes
		StaticModelLODMode		= Yes ;// Will append M or L to the skin name depending on GameLOD		
		DefaultModelConditionState
			Model           = None
		End	
                ModelConditionState = FORTRESS_IMPROVEMENT_4
			Model           = GBCastfloor	
		End
	End
Erklärung:
Wichtig sind hier nur die DefaultModelCondition- und die ModelConditionState. Die DefaultModelConditionSta te gibt an welches Model direkt angezeigt werden soll. In diesem Fall ist es keines, da es ja erst nach dem Upgrade erscheinen soll. Hinter dem "=" bei ModelConditionState steht der Verweis zu dem Upgrade. Dazu im unteren Teil mehr. Du siehst, dass hier nun ein Model angegeben ist (GBCastfloor ist nur ein Beispielmodel).
Damit das Model nach dem Upgrade erscheint ist dieser Eintrag in den Engineering Parametern nötig:
	Behavior = ModelConditionUpgrade ModuleTag_UntergrundUp
		TriggeredBy				= Upgrade_ElvenFortressUntergrund
		AddConditionFlags		        = FORTRESS_IMPROVEMENT_4
		Permanent				= Yes
	End
   
Erklärung:
Ich denke man erkennt hier direkt, dass nach dem Erhalt des Upgrades Upgrade_ElvenFortressUnt ergrund nun FORTRESS_IMPROVEMENT_4 als neue Condition hinzugefügt wird und unser Model nun angezeigt wird. 
2) Das mit dem Rüstungsbonus ist durch einen einfachen Eintrag zu lösen. Mit dem Radius , in dem der Bonus gilt muss man ein bisschen rumprobieren.
	Behavior = PassiveAreaEffectBehavior ModuleTag_UntergrundModifier
		UpgradeRequired		= Upgrade_ElvenFortressUntergrund
		EffectRadius			= 200
		PingDelay				= 2000
		ModifierName			= EFUntergrundLeadership
		AllowFilter				= GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
	End