Perhaps you are correct and you are sooner to spot this trend than me, but I do not think Xavi is a one trick cross pony unable to adapt to different opponents defending differently. I think your explanation looks simplistic at first glance, but I will not argue against it as I will have to admit having watched a bit lazily lately, focusing on other things happening on the pitch. I think the problem has been more about a general underperformance from certain players together with a tendency from Xavi of over-trusting some players, leading to a dangerous mentality spreading among the players. I have seen hints of this, and then I have thought it has been Xavi getting his tactics wrong in some games more than the opponent figuring Xavi out...
Last time I started to quietly criticize/doubt Xavi a bit, he went on this unbeaten streak and won some very nice games. I think a lot is happening at the club and he has a lot to take into consideration, I continue to give him the benefit of the doubt and look forward to next season very much. I do not rule out the league yet, either.
Against Frankfurt, there were many tactical adaptations they made, but by far the most obvious one was the front 3. Since he came Xavi has had a clear idea of how he wants his front 3 to move and play.
It's clear that of the two wingers, Xavi likes his right winger to hug the touchline and spam crosses to Auba, being
exclusively a creator (Dembele, Traore) and of the left winger, to be more of a 'false end' and come inside, combine with the team, assist in possession and move into the box (Ferran, Gavi). And he likes his 9 to frequent the penalty box, move around there and look for playable balls (Auba, Jutgla).
As a front 3, they all have simple and clear roles and due both to the tactics and the profiles of the players in question, it is very rigid. When it works, it works great. But because it's so simple it can also be adjusted for.
When Dembele received the ball, a swarm of Frankfurt players instantly descended on him blocking off the flank and forcing him to go backwards. Because he is instructed to hug the touchline and hardly ever come inside, he finds himself isolated in the position he is and has to either go backwards or go into a wall of Frankfurt players. They knew most of our goals come from Dembele crosses and that he is told to hug the touchline and cross. One threat removed from the game. When Traore came on this was even more evident.
When they marked Ferran, they actually let him go to the outside as you saw with some dribbles, because its his weak point as he doesn't produce much from there. He was able to get to the outside but didn't do anything and couldn't come across the box like he prefers, because they played him to the outside. When Ferran can't move into the box and combine with teammates, he doesn't do much as he isn't a traditional winger like Dembele. Another threat removed.
And because both the wingers were neutralised Auba was in a sea of Frankfurt players all game and the front 3 was 100 yards apart at all times. It was clear they marked Ferran and Dembele according to their tendencies.
When you have a more complex game system, the front 3 have alternating roles and tactics like this don't work. For example, Liverpool or City's front 3's are very dynamic and they are moving everywhere, going to the outside, cutting inside, moving into the box, so you can't map them out like that. But when Dembele or Traore are being told only to run down the wing and cross, it is easy to adapt and force them out of their game.
TL: DR : Simplicity works both ways. Simple instructions, like how Xavi tells Dembele and Traore to only cross, are great as they're easier to understand but the opponent can also more easily adjust for them. That's why multi-faceted players and multi-faceted instructions are important.