This is now clearly an OpenFOAM question and not ParaView/VTK at all.
Can or should continue on the cfd-online.com forum, but for the moment I will jot down some notes since I think the problem is elsewhere.
This is not really going to work like you want it to. Each boundary patch in OpenFOAM is contiguous range, so if you want to split a patch into multiple patches you will need to reorder the faces so that each sub-patch is also contiguous. Need to reorder/rewrite the cell owner, trigger topology updates, etc. ==> Not much fun!
It seems to me that what you probably really want is the equivalent of the topoSet selection of the faces actually built into the boundary condition (at least on startup or mesh-change). Within the boundary condition you would then apply different zones depending on the information you collected in the first step.
To be clear, you want to have a boundary condition that handles different sub-regions, so this is what you will need to define. Some of it could be possible via a dynamic coded boundary condition, but you may also need to write a real one instead.