Communications and scan time aren't being properly accounted for in this scenario.
AD makes good devices but you have to enforce the rules you want the system to operate by.
You are copying the digital input file to some arbitrary bits and the data concentrator is reading those bits. Then you are having intermittent alarms because the concentrator doesn't see the bits as true from the source PLC. And your counters are in disagreement , when configured at data concentrator and the polled nodes.
Look into the Click PLC data table you are copying this data into. Make sure its not being overwritten or defaulting to an 'off' state if communications hasn't occurred within "X" amount of time.
Generally, when physical processes are being controlled by means of a communication scheme that's over a network, it's usually recommended, and sometimes enforced by some controllers, that the receiving tables are put into a state where no output can happen, the outputs are disabled, or a substitute value is put in place when no value is available. Input files that derive their data in this manner may also be changing state to a 'zero' or 'null' value state if they don't have data.
Your main PLC is requesting data that isn't available, or packets are being dropped due to network issues. If these are determined to be correct, check your programming to enforce that the status of the 'alarm' bit isn't set until after communications have occurred. And create another timer that will set an alarm bit if comms have been requested but haven't been delivered so you're alerted to communications issues.
A lot of times we think things scan in the order in which we see it on the program, be it in ladder, sfc, text block, or what have you. Break free of this thinking. The PLC always does what you tell it to do exactly as it's told to do, which means if you want something to do something correctly every time, you need to put it in the program that way. It's part of debugging and practice makes perfect. If there was a perfect programmer out there, we would all only be using one programming paradigm. But we aren't and there's not.