Brief explanation:
It is possible that an array in a script will not be properly initialized due an error with inactive world object.
Long explanation:
3rd party scripts (everything that is not attached to an object) should not directly access objects which have the inactive or disabled state. The game does not load every object in RAM. That's why inactive/disabled objects automatically disabling their own scripts.
Log:
[12/14/2021 - 05:43:13AM] error: Element of array in property BoSTriggers on script ufo4p:ufo4pretroactive213script attached to UFO4PRetroactive213 (072B1553) cannot be bound because <nullptr form> (000FB230) is not the right type
Possible fix:
Use FormList instead of Array. There are seven BHExtBOSEnable Activators, all have one parent BHCombatTriggerEnableMarker [REFR:000FB251], which is disabled by default.
The fix assumes that a FormList contains all 7 Activators.
I have included the patch (full source with all necessary changes). Key moments are:
group Bug_26704
FormList Property BoSTriggers Auto Const
quest Property Inst302 auto const
endGroup
[...]
;Bug #26704: If Inst302 is completed, let the BoS triggers at Bunker Hill run their cleanup:
if Inst302.IsCompleted()
i = 0
while i < BoSTriggers.GetSize()
BHExtBOSEnable t = BoSTriggers.GetAt(i) as BHExtBOSEnable
t.UFO4P_CleanUp()
i += 1
endWhile
endif
The problem of the fix above due the fact of redefining a type of the property BoSTriggers, which leads to the incorrect work of the script. After update it is already will be loaded and need to be restarted by hand or via external scripting (restart the UFO4PRetroactive213 quest. It would be better to rename the property to exclude a property name collision.
Also, I did not test this script well, yet. So, probably there will be need to use Is3DLoaded() function to proper cleanup.

Attached Files:
UFO4PRetroactive213Script.psc