The Single forces the query before it to execute in OData (technically it's WCF Data Services). So the query sent to the server is just the selection of a txRx with the specified serial. The difference from EF is, that EF will lazy load navigation properties (in your case the TxRxModes) and thus when you access it to count it, it works.
WCF Data Services doesn't perform lazy load, since it could be very expensive (HTTP request to a remote server), and thus the TxRxModes is just an empty collection.
To work around this, you should be able to modify your code to preload the navigation property in question (so eager loading):
(from txRx in TxRxes.Expand("TxRxModes")
where txRx.Serial == "someSerial"
select txRx).Single().TxRxModes.Count()
Note the additional Expand call which causes the query to pull not just the txRx but also all its related TxRxModes from the server (in one query).