Hola Lmc.
Veamos. Para hacer lo que dices, el programa debería insertar los datos en la lista de forma ordenada. Como ya te han comentado BuHo y jirho, el programa simplemente añade los elementos al final.
Introduciendo los valores que tú indicas, el programa da un error de stack overflow o desbordamiento de pila. Esto ocurre en la función Insertame() en la línea
else if((nuevo->Dato)>(a->Dato)){a->sig=Insertame(a,nuevo);}
ya que al ser 3 mayor que 1, se llama a sí misma de forma indefinida, hasta que sobrepasas el límite de la pila. Debería ser así:
else if((nuevo->Dato)>(a->Dato)){a->sig=Insertame(a->sig,nuevo);}
Pero con eso no solucionamos el problema, ya que esta función sólo compara los primeros elementos de las listas que pasas. Si introduces los valores: 7, 6, 5, 2 y, 3, el resultado que obtienes es: 3, 7, 6, 5, 2. Como sólo compara los valores 3 y 7, y coloca delante el 3.
Por último, (lo se, soy un pesado), no liberas la memoria reservada con malloc(). Aunque el sistema libera la memoria cuando finaliza el programa, no es una buena costumbre reservar memoria y no liberarla cuando no la necesitas. En proyectos más grandes, tarde o temprano tendrás problemas con la memoria si no la liberas adecuadamente.
resumiendo: para poder ordenar de mayor a menor cambiando una sóla línea, primero debes corregir el programa y hacer que inserte los elementos de forma ordenada.
un saludo.