Toll free only applies specifically to land lines really. They count against your minutes for mobile. If you have unlimited then youre good. You don't have unlimited roaming so you're charged the rate for roaming like any other international call. The toll free is within Canada. The foaming network fees alone need to be recouped nevermind profit margin for Koodo.
In many cases, no matter where the answering service is located, 8xx numbers are deemed as USA Area Code numbers for calling purposes. When travelling in another country using Easy Roam, you have included calling locally, and back to Canada. Since the 877 number you called is considered a US number, you paid US long distance fees from South America for the call. I believe, like Visa, MasterCard offers a direct dial Canadian number which you can call collect. This number would have attracted no fees in the instance you describe, even if you had not requested it be a collect call.