First committed diseqc message was being sent as a 'retransmition frame'...

Some minor fix.
The frame byte needs to be 0xE0 for the first diseqc message (and 0xE1 for repeats).
I think you assumed it just needs to be 0xE0 for the first message in the bus (independently if it is intended to a committed or uncommitted switch).

It was being sent as 0xE1 in the first message to committed switches.

Tested and working fine on my 2x1 committed switch.