Najpoważniejszy błąd, zwracasz wskaźnik na zmienną lokalną która po wyjściu z funkcji zostaje usunięta.
char tmp[255] = { };
tablicaZnakow = tmp;
return tablicaZnakow;
Za daleko iterujesz pętlą for.
for (int i = 0; i <= strlen(tablicaZnakow); i++) // pętla po elementach tablicy >tablicaZnakow<
Pozatym algorytm jest dziwnie zakręcony.
powtarzaj dla całej długości tekstu
znak = tekst[i]
jeśli w nowym tekście nie występuje znak dodaj go