Dear Fatenrafie,
The issue with the config settings going missing when the rules are very long is a known problem in VirtueMart: Each shipping method has a maximum of ~19.000 characters in the database structure to store its configuration. If your rules are long enough to hit that maximum, VirtueMart will fail to write the config to the database, but does not show any warning or error. Even the plugin itself does not get any info/error that the configuration could not properly be saved.
One workaround is to split the rules across several shipping methods or to try to get your rule set smaller/shorter.
Having said that, let's look at your rules:
1. You said that only two provinces have special rates, all other 14 have the same shipping costs. If you place the two special provinces first, you don't have to check all other 14 states any more, so for all remaining states you don't need to duplicate the rules.
2. Looking at your shipping costs, it appears that the advanced (paid) version can significantly simplify/shorten the rules:
Name=Shipping to Sarawak; State=="Sarawak"; Weight<=0.5; Shipping=12
Name=Shipping to Sarawak; State=="Sarawak"; 0.5<Weight<=2; Shipping=11.5+2.5*ceil(4*(Weight-0.5) )
Name=Shipping to Sarawak; State=="Sarawak"; 2<Weight<=10; Shipping=37+5*ceil(2*(Weight-2))
Name=Shipping to Sarawak; State=="Sarawak"; 10<Weight<=25; Shipping=120+10*ceil(Weight-10)
For example, between 0.5kg and 2kg, you charge 2.5 for each 1/4 kg (with 11.5 for the first 0.5kg).
Similarly, between 2kg and 10kg, each 1/2 kg costs 5, while the first 2kg have an offset ot 37 (i.e. 2.2kg have 37 base costs plus 5 first the remaining 0.2kg). Etc.
You can write the rules for Sabah and for the remaining 14 provinces similarly, which should shorten your ruleset significantly and make it easier to check / modify later on.
Best regards,
Reinhold