What you described is working correctly. MR is supposed to use the opposite multiplier from GP because it does the translation the opposite way from GP. When configured correctly, both GP and MR share the same rates and both work correctly.
To explain the issue a bit further, GP calculations the translation as reporting currency back to functional currency. MR calculates the translation as functional currency to reporting currency. For this reason, you need to enter rates in a way that may seem backwards in GP, but doing this will actually allow both programs to work correctly.
Let's suppose an example of Functional Currency A and Reporting Currency B. Let's say that Functional Currency A is worth twice as much as Reporting Currency B. Below are the two options you have for how to enter the rates into GP. Both of these options will allow both MR and GP and work correctly:
$100 (Functional) = $50 (Reporting)
Option 1: In GP, set the rate table to multiply by 2.
-This will allow GP to multiply the reporting currency by 2 and MR to divide the functional currency by 2.
Option 2: In GP, set the rate table to divide by .5.
-This will allow GP to divide the reporting currency by .5 and MR to multiply the functional currency by .5.
The above information, along with additional translation information, is noted in the following KB: