Failing tests have to do with MaliciousNetwork. If it "steals" funds by sending the user less than expected, and reports that amount, then the check that require(reportedDestAmount == tradeOutcome.userDeltaDestAmount); in the proxy will still be true...
require(reportedDestAmount == tradeOutcome.userDeltaDestAmount);
in the proxy will still be true...