Bevel modifier artefact on a single vertex
I think there’s nothing bad with your topology, EXCEPT that it can’t fill your needs, meaning it can’t properly bevel with the Bevel modifier:


You've created a vertex group to designate all the edges that are supposed to be bevelled by your Bevel modifier. At the top of your mesh you've selected all the border vertices because you want all the border edges to be bevelled.





The problem is that vertex groups don't include only the vertices, it also include all the edges between vertices. Therefore your modifier will also affect all these edges:





You can verify it, if you select all the vertex group, you'll see these edges included:





So, as you're using a Bevel modifier with Vertex Group method it will also bevel all these edges and it will give a mess of intertwining edges. Yes by chance it kind of works better on the right side but I don't think it's satisfying either:





If you create additional topology to make sure that the inner edges are not affected by the bevel, in my opinion it still won't work properly and it will make you loose the roundness you want:






So I may be wrong (edit: actually it looks like the topology proposed by Metaphor_set works with modifier) for the result you wanted) but the solution is probably to do it manually and to bring some manual corrections at the end with some join vertices and dissolve edges. The Bevel modifier can't always do everything properly: