Recently, I faced same issue for custom attribute sorting on frontend. I wanted to show custom attribute first on front-end drop-down list. After doing couple of hours research
I found that, order for sorting is total based on the configuration setting. Changes to configuration setting worked for me. Below is the steps to follow,
1) Go to Admiin-Configuration->catalog->Frontend->Product Listing Sort by.
2) Set the ‘Product Listing Sort by’ as per your requirement.
2) Follow the same for all ‘Configuration Scope’ available. (Left corner, Current Configuration Scope)
3) Refresh the cache.
This will work for sorting.