. I know exactly what your problem is. the Microsoft Hardware sends reflector values on each button push. So say you press the Mute button twice in a row. it will send two distinct but similar remote codes. On the third push it will send the same signal as the first push. It basically flip flops the button pushes. So when you try and learn in Girder it is learning one of hte two codes. So your remote will only work on every 2 button pushes.
I have the same problem with USB-UIRT and my software Intelliremote found at
http://www.intelliremote.com If you use the straight MS eHome IR Receiver my software detects it and will work for all your button pushes since I can anticipate that reflector value.