Unfortunately, r409 doesn't seem to fix the X10 communication issue.
[18:46:13.565375] X10 ! Thread was being aborted
[18:46:13.569682] X10 ! at (wrapper managed-to-native) System.Threading.WaitHandle:WaitAll_internal (System.Threading.WaitHandle[],int,bool)
at System.Threading.WaitHandle.WaitAll (System.Threading.WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext) [0x00000] in <filename unknown>:0
at XTenLib.Drivers.CM15.ReadData () [0x00000] in <filename unknown>:0
at XTenLib.XTenManager.ReaderThreadLoop () [0x00000] in <filename unknown>:0
[18:46:13.685016] X10 < 9B 0D 2E 09 DE 02 09 02
[18:46:13.688159] X10 < 9B 0D 2E 09 DE 02 09 02
[18:46:13.743570] X10 < BB 44 60 05 00 14 20 28 24 29
[18:46:13.799983] X10 < 8B
[18:46:13.859310] X10 > 55
2014-08-11T18:46:13.9148730-07:00 MIGService.Interfaces HomeAutomation.X10 MIG Interface Options.HouseCodes A,B,C,H
[18:46:19.660760] X10 ! Thread was being aborted
[18:46:19.665507] X10 ! at (wrapper managed-to-native) System.Threading.WaitHandle:WaitAll_internal (System.Threading.WaitHandle[],int,bool)
at System.Threading.WaitHandle.WaitAll (System.Threading.WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext) [0x00000] in <filename unknown>:0
at XTenLib.Drivers.CM15.ReadData () [0x00000] in <filename unknown>:0
at XTenLib.XTenManager.ReaderThreadLoop () [0x00000] in <filename unknown>:0
[18:46:19.746679] X10 < 9B 13 2E 09 DE 02 09 02
[18:46:19.749913] X10 < 9B 13 2E 09 DE 02 09 02
[18:46:19.805370] X10 < BB 54 60 05 00 14 20 28 24 29
[18:46:19.861644] X10 < 8B
[18:46:19.929115] X10 > 55
2014-08-11T18:46:19.9745140-07:00 MIGService.Interfaces HomeAutomation.X10 MIG Interface Options.HouseCodes A,B,C,H,O
2014-08-11T18:46:22.5616700-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Interfaces.List/1407807983869 HTTP GET
2014-08-11T18:46:23.4184010-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Logging/RealTime.EventStream/ HTTP GET
2014-08-11T18:46:25.3372690-07:00 HomeAutomation.HomeGenie.Automation 35 Automation Program Program.Status Running
2014-08-11T18:46:25.4324150-07:00 HomeAutomation.HomeGenie.Automation 35 Automation Program Program.Status Idle
2014-08-11T18:46:25.9726080-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Modules.Get/HomeAutomation.HomeGenie.Automation/35/1407807987032 HTTP POST
2014-08-11T18:46:26.7043040-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Modules.Get/HomeAutomation.HomeGenie.Automation/35/1407807988011 HTTP POST
[18:46:30.075751] X10 > 5A 02 01 42
[18:46:30.078848] X10 > PLCRX: 5A 02 01 42
[18:46:30.081754] X10 > FNMAP: 01
[18:46:30.084523] X10 > DATA: 42
[18:46:30.087564] X10 > 0) House code = O
[18:46:30.090505] X10 > 0) Command = ON
2014-08-11T18:46:32.5600910-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Interfaces.List/1407807993869 HTTP GET
2014-08-11T18:46:34.5072820-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Logging/RealTime.EventStream/ HTTP GET
I don't know what the errors are, but maybe they will help. In this logged data, I turned the house code O off and then back on. I then transmitted an ON command for O3 which is configured as a sensor. This used to work fine, so I'm not clear what's wrong now.
So, just to try something, I tried switching O2 from a sensor to a switch. In the following log, I sent O2 ON immediately after switching the sensor. The strange thing is, once I did that O3 appears to respond too.
[18:51:01.906798] X10 > 5A 02 00 4E
[18:51:01.909969] X10 > PLCRX: 5A 02 00 4E
[18:51:01.912866] X10 > FNMAP: 00
[18:51:01.915657] X10 > DATA: 4E
[18:51:01.921266] X10 > 0) House code = O
[18:51:01.924294] X10 > 0) Unit code = 2
2014-08-11T18:51:02.0532410-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Logging/RealTime.EventStream/ HTTP GET
2014-08-11T18:51:02.2013120-07:00 HomeAutomation.HomeGenie.Automation 35 Automation Program Program.Status Running
2014-08-11T18:51:02.2448290-07:00 HomeAutomation.HomeGenie.Automation 35 Automation Program Program.Status Idle
[18:51:02.369075] X10 > 5A 02 01 42
[18:51:02.372520] X10 > PLCRX: 5A 02 01 42
[18:51:02.375393] X10 > FNMAP: 01
[18:51:02.378229] X10 > DATA: 42
[18:51:02.381184] X10 > 0) House code = O
[18:51:02.384077] X10 > 0) Command = ON
2014-08-11T18:51:02.3989360-07:00 HomeAutomation.X10 O2 - Status.Level 1
2014-08-11T18:51:03.6787080-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Interfaces.List/1407808263909 HTTP GET
2014-08-11T18:51:03.6986570-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Modules.Get/HomeAutomation.HomeGenie.Automation/35/1407808264688 HTTP POST
2014-08-11T18:51:03.7187180-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Modules.Get/HomeAutomation.HomeGenie.Automation/35/1407808264695 HTTP POST
2014-08-11T18:51:03.7386230-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 hg/html/pages/control/widgets/homegenie/generic/images/socket_on.png HTTP GET
2014-08-11T18:51:03.7622870-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 hg/html/images/indicators/plug.png HTTP GET
[18:51:09.580861] X10 > 5A 02 01 43
[18:51:09.584178] X10 > PLCRX: 5A 02 01 43
[18:51:09.586791] X10 > FNMAP: 01
[18:51:09.589635] X10 > DATA: 43
[18:51:09.592606] X10 > 0) House code = O
[18:51:09.595505] X10 > 0) Command = OFF
2014-08-11T18:51:09.5992240-07:00 HomeAutomation.X10 O2 - Status.Level 0
2014-08-11T18:51:12.5683100-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Interfaces.List/1407808273901 HTTP GET
2014-08-11T18:51:13.1684990-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Logging/RealTime.EventStream/ HTTP GET
[18:51:15.844432] X10 > 5A 02 00 42
[18:51:15.847501] X10 > PLCRX: 5A 02 00 42
[18:51:15.850526] X10 > FNMAP: 00
[18:51:15.853321] X10 > DATA: 42
[18:51:15.856379] X10 > 0) House code = O
[18:51:15.859190] X10 > 0) Unit code = 3
[18:51:16.289407] X10 > 5A 02 01 43
[18:51:16.292561] X10 > PLCRX: 5A 02 01 43
[18:51:16.295428] X10 > FNMAP: 01
[18:51:16.298259] X10 > DATA: 43
[18:51:16.301224] X10 > 0) House code = O
[18:51:16.304027] X10 > 0) Command = OFF
2014-08-11T18:51:16.3075260-07:00 HomeAutomation.X10 O3 - Status.Level 0
Again, I tried something new. I transmitted A8 ON from HG2 and HG1 responded as did the light. I then used HG1 to transmit A8 OFF, but only HG1 switched the module off. The light remained off and HG2 did not see the command either.
[18:55:36.685361] X10 > 5A 02 00 6D
[18:55:36.688814] X10 > PLCRX: 5A 02 00 6D
[18:55:36.691695] X10 > FNMAP: 00
[18:55:36.694485] X10 > DATA: 6D
[18:55:36.697479] X10 > 0) House code = A
[18:55:36.700394] X10 > 0) Unit code = 8
[18:55:37.138418] X10 > 5A 02 01 62
[18:55:37.141924] X10 > PLCRX: 5A 02 01 62
[18:55:37.144719] X10 > FNMAP: 01
[18:55:37.147537] X10 > DATA: 62
[18:55:37.150638] X10 > 0) House code = A
[18:55:37.153412] X10 > 0) Command = ON
2014-08-11T18:55:37.1569690-07:00 HomeAutomation.X10 A8 - Status.Level 1
2014-08-11T18:55:37.5008890-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 hg/html/pages/control/widgets/homegenie/generic/images/light_on.png HTTP GET
2014-08-11T18:55:37.5286690-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 hg/html/images/indicators/bulb.png HTTP GET
2014-08-11T18:55:38.5776400-07:00 HomeAutomation.HomeGenie.Automation 35 Automation Program Program.Status Running
2014-08-11T18:55:38.6695290-07:00 HomeAutomation.HomeGenie.Automation 35 Automation Program Program.Status Idle
2014-08-11T18:55:39.3309360-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Logging/RealTime.EventStream/ HTTP GET
2014-08-11T18:55:39.7090180-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Modules.Get/HomeAutomation.HomeGenie.Automation/35/1407808540911 HTTP POST
2014-08-11T18:55:39.7189240-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Modules.Get/HomeAutomation.HomeGenie.Automation/35/1407808540931 HTTP POST
2014-08-11T18:55:42.5917660-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Config/Interfaces.List/1407808543905 HTTP GET
2014-08-11T18:55:44.9791280-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.X10/A8/Control.Off/null/1407808546310 HTTP GET
[18:55:45.076672] X10 < 04 6D
[18:55:50.194668] X10 > PREVIOUS COMMAND TIMED OUT, RESENDING(1)
[18:55:50.251188] X10 < 06 63
2014-08-11T18:55:50.4190280-07:00 MIG.Gateways.WebServiceGateway 192.168.0.5 api/HomeAutomation.HomeGenie/Logging/RealTime.EventStream/ HTTP GET
[18:55:50.611908] X10 > 55
[18:55:50.615466] X10 > COMMAND SUCCESSFUL
2014-08-11T18:55:50.7094750-07:00 HomeAutomation.X10 A8 - Status.Level 0