Again, this behavior has nothing to do with the multi-step checkout plugin. You can deactivate the plugin and you’ll see the same behavior.
The error comes from the fact that you’re not returning anything in the filter function. A filter ALWAYS takes in a variable, modifies it and then returns it modified (that is the definition of a filter). When the function doesn’t get any parameter and it returns nothing, the variable that needs to be filtered is actually transformed to an empty array. Therefore the functionality gets broken.
Try to use the filter like this:
add_filter( 'woocommerce_cart_shipping_packages','filter_woocommerce_cart_shipping_packages');
function filter_woocommerce_cart_shipping_packages($shipping_packages) {
// Modify here the $shipping_packages variable in some way and then return it.
// Don't remove the return statement. Very important
return $shipping_packages;
}
And I’m so mad right now that I had to spend half an hour setting up different shipping options and testing out your issue just to find out that the issue is that you have no clue how to use a filter. (Ok, I’m not really mad, but still …)