With .net 4.5 you could use compression, but that would require completely rewriting you binding from the bottom up.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CompressedNetMsmqBinding_IProductService"
>
<binaryMessageEncoding compressionFormat="GZip" >
<readerQuotas maxDepth="32"
maxStringContentLength="524288"
maxBytesPerRead="524288"/>
</binaryMessageEncoding>
<msmqTransport
deadLetterQueue="System"
maxReceivedMessageSize="524288"/>
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="net.msmq://localhost/private/Products" binding="netMsmqBinding"
bindingConfiguration="NetMsmqBinding_IProductService" contract="Products.IProductService"
name="CompressedNetMsmqBinding_IProductService" />
</client>
</system.serviceModel>
</configuration>