Normally b.) (in a high level league) but you may not want to be a rules nazi and go with a.) if both parties agree on the guessed scores and the risk of it affecting the final league table is negligible ...
I do sympathize. My team is waiting for its last result to go into the league table and it is the difference between safety and relegation.
Firstly, can you get the participants to agree what the score was, albeit approximate? If they can agree amongst themselves in a timely manner, then that's the result you can go with. If they can't agree (or there's not enough time), it's a walkover against whoever is responsible for sending in the match-card(s). It's harsh, but all of your other options could result in teams 'forgetting' to hand in cards when it suits them in future.
Secondly, why are you missing match-cards? If there are mitigating circumstances (UK postal 'service' springs to mind), then cut whoever should have sent them in some slack. However, if it's becoming a recurring thing, then you may wish to consider placing an additional fine.
Finally, one thing the Worcester league have introduced is the ability to scan and e-mail match-cards, alongside the usual post. This is quicker & the home team still has the match-card in the case of a dispute.
I don't know how you work in UK but here in Germany we have the score sheets in triplicate (one for every team, one for the league administration) plus the home team has to enter the scores online within 2 days after the match. Works pretty well imo.