There are 2 ways you could explore -
-
Create separate shipping profiles for different products. This will allow you to set up different shipping rates for different products. Here you have a limitation that you can only create maximum 99 shipping profiles.
-
Use an app like ShipMagic which allows you to set up unique shipping price for each product in a product metafield. You can also display different rates for different regions using zipcodes.