There are a number of things that can cause a variety of card failures and declines. There are also three types of card declines:
1. Declines that Stripe receive from upstream (aka the customer's bank) - these happen for a bajillion reasons.
2. Approved charges ones that Stripe declines because an AVS check failed and you had the appropriate flags set in your account settings
3. Approved charges that Stripe's machine learning and fraud prevention tools deam as risky / fraudulent. In these cases Stripe will decline the charges with a failure reason of "fraudulent".
With #1, there is nothing Stripe can do about that and having the customer call the bank is required.
With #2, you could disable the check in the dashboard, have the customer re-enter their zip code, or have them call their bank to add / modify the AVS address.
With #3, you can mark the transaction as safe via the api or dashboard and then retry the transaction, but this isn't something you should do for all transactions that get flagged as fraudulent unless you trust your fraud detection system more than Stripe's.
As for charges failing based on where the token was created, this can happen is stripe is seeing a lot of token requests for multiple cards happening from one location as it can be a sign of a scammer / bot attempting to see which credit cards are valid.
Hopefully this provides some insights for others who find this thread.
Matt