Hi,
I'm just trying to make sure I understand.
Your developers control the Data Layer, initializing it and pushing events to it.
They are also logging all the data pushes into an internal database?
When you are looking at the Data Layer, you only see the event once (I think this is what you mean by the UI fires once?).
But in Analytics you see double the amount of events that are recorded in your internal DB.
If I have that all correct, have you actually tested the site implementation? Maybe you have multiple rules triggering? Or maybe you have two triggers on the same rule (X OR Y) - but Launch Rules aren't exclusive OR rules.. if both X and Y match, the rule will trigger twice.
If your Launch rules are triggering more than once for the same "event push", you can add a Max Frequency condition to prevent this... For example:
If once event is double triggering, then this should be enough.. the calls should be close enough together that 2 seconds is more than enough to prevent double tracking...
If you have multiple rules triggering for the same event, then this won't help.. you may need to add different conditions to prevent both rules from firing, or figure out how to combine both rules into one.