orderfields
has a syntax where it orders based on a permutation array. The second output of sort is a permutation array. Something like this should work:
[~,I] = sort(cell2mat(struct2cell(MyStruct)));
I = flip(I); % reverse ordering to get larger elements first
MyStruct = orderfields(MyStruct,I);