Cannot set sort order of custom fields in profile
The weight of the custom fields only controls the order in which they appear on the back end.  The profile sets its own order.  You can set the order from Administer menu » Customize Data and Screens » Profiles, then clicking the Fields link next to the profile you want to edit and using the "Order" buttons (see screenshot).