We had to deal with such overlapping labels a lot. For us working with separate models for each Label performed mediocre. We went for a token labeling with multiple labels per token to allow for overlaps.
From their description I also wonder wether the same span can have multiple labels?