Com o comando que você está executando, a sintaxe $(...) é avaliada pelo seu shell antes de chamar gksudo . O que você quer é que seja avaliado por um shell rodando como root. Talvez tente algo assim:
gksudo -u root "sh -c 'gedit \$(zenity --file-selection)'"