Você pode escrever vários casos, mesmo que todos tenham a mesma condição.
ORDER BY
CASE @OrderByColumn WHEN 1 THEN Forename END DESC,
CASE @OrderByColumn WHEN 1 THEN Date END,
CASE @OrderByColumn WHEN 1 THEN Location END,
CASE @OrderByColumn WHEN 2 THEN Surname END ASC
Na verdade, você não especifica uma coluna para classificar, mas uma expressão.
A instrução case retorna null se a condição não for atendida, então na verdade significa:
CASE @OrderByColumn WHEN 1 THEN Forename ELSE NULL END
Portanto, se @OrderByColumn não for 1, a instrução retornará sempre NULL. Isso não o exclui da classificação, a propósito, mas coloca todas essas linhas juntas no resultado, tornando 'SurName' a classificação decisiva dentro desse grupo de linhas.