get_the_category() returns an array of term objects, not a single term object, I didn’t realize this when I last commented.
But is seems you figured that out since you’re using $name= $category[0]->
everywhere but for getting the field, so it should be. $sous_titre = get_field('sous_titre_categorie', $category[0] );