Una delle cose che apprezzo del .NET Framework è l'esaustività della descrizione degli errori.

Nel caso in esame, se il compilatore dice che "non tutti i percorsi del codice restituiscono un valore", evidentemente il problema sarà ciò che il compilatore dice.

Verifica il codice e controlla che non vi siano percorsi di esecuzione, ad esempio in presenza di If, per le quali non avvenga la restituzione di un valore di ritorno per la funzione.