Попробуйте разделить сортировку на 3 отдельных шага, причем только второй использует ваш собственный порядок сортировки, т. Е.
.Range(.Cells(1, 1), .Cells(lastrow, lastCol)).Sort _
Key1:=.Range(.Cells(2, 4), .Cells(lastrow, lastCol)), Order1:=xlDescending, _
MatchCase:=False, Orientation:=xlSortColumns, Header:=xlYes
.Range(.Cells(1, 1), .Cells(lastrow, lastCol)).Sort _
Key1:=.Range(.Cells(2, 3), .Cells(lastrow, lastCol)), Order1:=xlDescending, _
OrderCustom:=n, _
MatchCase:=False, Orientation:=xlSortColumns, Header:=xlYes
.Range(.Cells(1, 1), .Cells(lastrow, lastCol)).Sort _
Key1:=.Range(.Cells(2, 5), .Cells(lastrow, lastCol)), Order1:=xlAscending, _
MatchCase:=False, Orientation:=xlSortColumns, Header:=xlYes
Обратите внимание, что я изменил порядок, в котором эти сортировки выполняются, по сравнению с тем, как они были объявлены в исходном операторе.