In a normal season, games postponed due to rain late in the calendar don't have to be made up if there are no postseason implications. That could solve most if not all of the Marlins games that have to be cancelled, *if* the Marlins are out of postseason contention at the end of September (probable) and their opponents either are similarly out of the running (possible in some cases) or have mathematically secured their playoff places (in which case you just toss the games out even if they could have had a seeding impact).
For the other postponed games that remain, MLB needs to pretty quickly come up with a solution for what happens to the games and/or the standings. A few options, some of which aren't mutually exclusive (and some of which are certainly out there):
1) Use whatever spare days are available to reschedule at least some of them - with doubleheaders involved if required.
2) Reschedule them for the end of the season, and push back the start of the playoffs accordingly - with or without doubleheaders to shorten the timespan.
3) Ignore the games, and use each team's winning percentage as the final arbiter to determine postseason standings.
4) Use the teams' final winning percentages as the basis for calculating the results of unplayed games - e.g., if a three-game series were cancelled between two teams with exactly .500 records, give them each 1.5 wins and 1.5 losses in the standings.
5) Same as 4), except using those percentages as the basis of randomly determining the results of the games - e.g., in the same aforementioned three-game series, you'd have a computer flip a virtual coin three times to determine the winner of each unplayed game. (Which sounds totally ridiculous, but for one, imagine the TV ratings for "Simulation Sunday!", and for two, World Cup soccer tournaments have actually drawn lots in the past to determine which winner in a tied group should advance, so there is some precedent.)
The likeliest option would seem to me to be a combination of 1) and 3), with the possibility of punishing teams like the Marlins whose negligence leads to games being cancelled (without also rewarding any teams with forfeit wins). But the solution(s) chosen will have to be along these lines, and it/they should be able to save the season. Yes, some teams will benefit and some teams will get screwed by the arbitrary nature of any solution(s) implemented, but having 16 teams in the playoffs instead of 10 makes it easier to ignore the complaints of any team that gets screwed out of a playoff berth - if you wanted to play in the postseason, finishing better than .500 would have helped. (Which is the same logic for why I'd like to see 6-8 teams in a college football playoff instead of 4, but I digress...)
Incidentally, what would happen if a team plane were to crash during the season and most or all of the players and staff aboard were to die? I'd have thought that a properly run sports league would have some sort of contingency plan to cover this sort of situation, or at least to have thought about what should happen...and perhaps some lessons from that planning could apply here.