I'm trying to follow up the evolution for a set of subhaloes within a given halo in TNG50-1. Probably my question is very naive but, does the SubfindID change with redshift, or if you have identified a particular Subhalo, you can follow up the evolution of it by using always the same SubfindID?
On the other hand, could the subhaloes belong to a different halo at different redshift?
Yes you should think that the "SubfindID" does change with every snapshot. Similarly a "Halo ID" also changes, and beyond that, you're right that a subhalo could physically belong to a different halo at a different snapshot.
The way to find the same object in two different snapshots is to load the "main progenitor branch" of the SubLink merger tree. The two fields SnapNum and SubfindID give you the corresponding numbers you need.