This is posible to do, but is going to be tricky
I would create a database table to store the combinations and weight tiers in
Then you could use a query that will filter based on the selected shipping type, shipping country and total weight for the cart.
Store the returned shipping rate in a session variable, and use the session variable in your shipping calculation.
you will need to hand code functions to make sure that the shipping types that don't apply to the shipping country aren't selected.