You might not like this idea, but from the point of view of practical performance I would simply replace your "mp" markings with "p" and your "?" with "mp".
That shows the general idea of "waves" of crescendo and diminuendo within an overall crescendo. Hoping that the same dynamic marking will have exactly the same dynamic level every time it is used just isn't going to happen with human performers.
Looking at the snippet of score, it seems like there are parts that are "theme" (e.g. the fourth staff for the first 4 bars) and others that are "accompaniment," and good human performers are not going to play those at the same dynamic level, unless you add some very explicit instructions like "senza expressivo".