OK, good. You now posted a different table from your first post, since I now see that your table has a clustered index.
Half of the rows has a length of 25. That is explained by my earlier answer. Each of them are the first numerical value for ID. Note that the uniquifier isn't populated for the "first row"; it is only populated when you have duplicates for the clustered index key.
Then you have a duplicate of ID. That second row has a length of 33. The uniquifier is 4 bytes. 25 + 4 = 29. 4 more bytes to explain.
A row where the uniquifier exists is handled like a row with at least one variable size column. That means that you have 2 bytes specifying the number of variable length column. And then also 2 bytes for each var size column, for the column offset . In your case you have 1 var size column. I.e., 2 + 2 = 4.
Mystery explained. See for instance this for more info: https://aboutsqlserver.com/2013/10/15/sql-server-storage-engine-data-pages-and-data-rows/