It appears what you are doing is bypassing world space and view space transforms altogether and directly transforming from local space to screen space. While that works its not very intuitive.
I guess you could modify monogame… but i don’t think that’s really the right way to go.
I think that you should modify this so you are assigning positions in world space.
You might not need to dump spritebatch honestly i would dump it though just as you thought above.
You could use a single vertex buffer for the map.
Then a second one for the billboarded sprites which only would need to be updated if the sprites or camera moved.
That way you wouldn’t even need to much extra on the vertex shader either.