Erro ao passar de um ficheiro de texto para um arvore Binaria de pesquisa Linguagem C

Boas malta, estou a fazer um trabalho para a universidade bastante longo e uma das exigências é passar os dados de um ficheiro de texto para uma arvore Binaria.

O codigo que utilizei para fazer esta passagem foi o seguinte:

case 1: // Do ficheiro para a arvore 
     if((ficheiro = fopen("FicheiroArvores.txt", "r")) != NULL){
     while(fscanf(ficheiro, "%lld %(^n)%*c %(^n)%*c %(^n)%*c %(^n)%*c %(^n)%*c%d %(^n)%*c %d %d", &fISBN,fTitulo,fIdioma,fPriAutor,fSegAutor,fEditora,&fAnoLan,fCategoria,&fPreco,&fStock)==10)
     {
          fLivros=InserirLivro(fISBN,fTitulo,fIdioma,fPriAutor,fSegAutor,fEditora,fAnoLan,fCategoria,fPreco,fStock,fLivros);
          //LMostrarElementos( fLivros);
          Livros=InserirABP(Livros,fLivros); // sendo Livros a minha arvore
          printf("n");
          
    }
    ListarPreOrdemAB(Livros);
    fclose(ficheiro);
}
else
    puts("Não foi possível abrir o arquivo.");
     break; 

Sendo a arvore definida da seguinte maneira:

 typedef struct {
long long ISBN;
char *Titulo;
char *Idioma;
char *PriAutor;
char *SegAutor;
char *Editora;
int AnoLan;
char *Categoria;
int Preco;
int Stock;
} Livro;
struct NodoAB {
  Livro  Elemento;
  struct NodoAB *Esquerda;
  struct NodoAB *Direita;
};
typedef struct NodoAB *PNodoAB;

Ficheiro de texto:

1
Titulo
Idioma
autor
sobrenome
Editora
2021
Categoria
10
11
2
ti
id
ped
dii
edii
2020
Cate
11
12
3
weqfew
fweqfwe
fweqfwe
wefqwe
weber
2019
brtybt
14
15

Função InserirABP:

PNodoAB InserirABP (PNodoAB T, Livro X){
  if (T == NULL) {
    T = CriarNodoAB(X);
    return T;
  }
  if (LCompararElementos(X, T->Elemento) == -1)   // X.NIF < (T->Elemento).NIF)
    T->Esquerda = InserirABP(T->Esquerda, X);
  else
    T->Direita = InserirABP(T->Direita, X);
  return T;
}

declaraçao das variaveis:

//Livros
PNodoAB Livros;
//Ficheiro Livros
long long fISBN;
char fTitulo(100);
char fIdioma(100);
char fPriAutor(100);
char fSegAutor(100);
char fEditora(100);
int fAnoLan;
char fCategoria(100);
int fPreco;
int fStock;
Livro fLivros;

Agora o que me está a dar erro é o facto de quando eu faço “ListarPreOrdemAB(Livros)” o output das strings dão me a mesma coisa sendo estas igual ao ultimo elemento presente no ficherio de texto, no entanto o output dos int da me certo. Alguem me pode ajudar?

(enter image description here)(1)
(1): https://i.stack.imgur.com/bh25x.png