Not seeing your detail level data I am not sure if there is a way to get the sorting the way you want without using a calculation method that gets teh values before getting it into Crystal, meaning you may want to look at using a command or stored proc to get your group sort value at the same time it fetches all of the data. You can just sort on that field then.
The group sorting happens in a report pass that precedes where you are doing these whileprintingrecord calculations.
Also, occasionally you can use a different group summary calculation that gets a value that alwasy gives you the 'correct' sort order values and you can use that as the sort value without actually displaying it.
Edited by DBlank - 03 Feb 2015 at 4:34am