Your bank has NO way to know if a check if fake or not. They have to make funds available to you in 3 days whether it's good or not. But when they send those cancelled money orders to Moneygram, Moneygram reports that they are fake. Your bank can't know this before they are remitted to the payee
YOU are responsible for anything you deposit in your account and have to pay the bank the full amount of anything you deposited if it's fake
"Check cashing and account holder responsibilities are the same in all countries:
You cannot rely on your bank, credit union, PostBank, or check cashing store to protect you from counterfeit, stolen, or forged drafts. It's not their job to watch out for you, it is your job to watch out for them. Like you, merchants, banks, and credit unions have the rightful expectation of being given good money.
BY LAW YOU ARE LEGALLY RESPONSIBLE AND FULLY LIABLE for any and all checks or money orders deposited into your bank account by you or someone else, and for any funds wired into ANY of your accounts by you or someone else.
Your are 100% liable for any and all funds deposited into any of your accounts by any means whatsoever."
if you could find the person who really sent you the checks, not the fake name they gave you and the fake return address on the envelope, then you could try to sue them to get the money back - but you still have to pay your bank back now. Have you filed a police report already against the person who scammed you?