Okay, I think I understand.
We have two problems:
The first  one  is in relation to conversion of the base currency for other currencies depending on the customer's currency to which the report is intended.
Well, I see two ways to solve this problem:
Starting from the following premise:
1. You have registered in the currency table the corresponding value of all the coins you'll need against the Canadian dollar (base), represented by the "exchangerate" field value.
2-You can use customizations in this organization via SDK as plugins / OData Js requests
3-These "reports" or "project budges" that need to be displayed in several different quotes will be represented in a SSRS report or other record of a particular entity on this same organization.
So
If a record "(expenses, budget lines, etc ...)" inserted in the base currency (CAN) is intended for only one client.
AND
This client is represented in your organization into an entity "Account" or "Contact" and has only one preferred currency (which will be your target currency)
You can associate the client through a field "lookup" on record "(expenses, budget lines, etc ...)" which was created by the user.
Place a plug-in step on PreCreate or PostCreate event that will seek customer currency quotation in relation to the base currency through the value of the "exchangerate" contained in the entity "transactioncurrency" and will update this value or create a record copy to the value in the currency of destiny. (When considering the value of the quotation of that day).
Now if you want the same record "(expenses, budget lines, etc ...)" is billed / reported at run time and the target currency is not pre-determined, means, you'll define for which currency will be converted just at the time that the report is exported, so you can develop an SSRS report with a currency parameter, which depending on the choice that the user makes to the target currency, when the report runs, the values ​​are converted.
Now, to solve the second problem: Multiple currencies for multiples currencies N:N
At the moment I can only think of creating a custom entity that will have multiple records with the columns "from currency," "to currency" and "value". In it you must update the prices according to your need (from time to time, or "real-time").
The export of the same would occur similarly to the problem 1, only searching the values ​​in this custom entity
If this solves, please "Like" and mark as "Verified Answer".