How do I organize a set of tracks into the sonatas that comprise them?

I have 8 tracks of Haydn sonata music by András Schiff, but they are not organized by the sonatas. How do I organize/group them? Eg, the first 2 tracks are “Sonata in C Major.” Here is how thing look now:

I assume (but I’ve not tried it) that this can be done by adding WORK and PART tags to the tracks. See here.

Using MP3Tag with WORK and PART, I got things to (mostly) work. One thing that seems to be important is that MP3Tag update the Date Changed information when tag values are changed; otherwise, Roon didn’t appear to see any change. (I guess that makes sense.) But that shows why it’s a pain to use an editor outside Roon: Unless one gets everything exactly right, the effect as seen by Roon is unpredictable or confusing. If Roon had its own tag editor, I presume that the editor would produce the “obvious” results.

Small nit (the “mostly” above): Of the 3 works here, only the first title is exactly as the WORK tag describes (ie, “Sonata in C Major, Hob. XVI/48”). The other 2 works seem to be coming from Roon (namely, for the second work, “Keyboard Sonata in C minor, H. 16/20” versus “Sonata in C Minor, Hob. XVI/20” as given by the WORK tag). Below I show the first 2 works: Notice the difference. After that, I show the File Tags for the second work, and notice that WORK has a value different from that shown in the first screen shot.

That’s Roon’s intended behavior: the WORKs and their PARTs are mapped to their Roon database entities, which have canonical names, often (but not always) those in for classical works. Indeed, here’s the entry for the “16/20”:

My issue is that the first work is identified as WORK/PART show, and that the second two works are identified differently.

My guess is that the first composition (H. 16/48) was not identified by Roon as one in its database (the identification process may miss for various subtle reasons, even though H. 16/48 is in Allmusic and thus likely in Roon’s database), while the other two were identified and so Roon is using their canonical database names. I’ve seen this happen.