Non è possibile definire un template in un file .cpp, devi spostare la funzione nel .h

Inoltre metti :

typename Lista<Elementi>:osizione

per far capire al compilatore che - posizione - non è una variabile, ma uno specificatore.