As far as I am aware, すぐに means "immediately", but in which contexts can you use もうすぐ and すぐ？
As an example, if I'm told this I might expect the fireworks to start...
すぐ花火が始まります-> 0 min - maybe 5 min すぐに花火が始まります-> 0 min - maybe 5 min もうすぐ花火が始まります-> maybe 5 min - maybe 20 min
i.e. もうすぐ isn't immediately, more like "very soon". As for すぐ vs すぐに I don't think there is a difference.
EDIT: The actual time these word indicates depends heavily on the context and listener. The times above are completely made up.
For example if I'm told this, I might expect my scores to go up...:
すぐ学力が上がりますよ -> I can expect them to go up within 3 months? もうすぐ学力が上がりますよ -> it won't get better now, but they will start to get better after at some point, maybe in a month?
But somebody else may have a completely different expectation.
There could be various explanations from Japanese native speakers. Mine is just one of them. I hope it could be helpful for your question.
"もうすぐ" = "Just a little longer and"
At the end of winter, we sometimes find a sign of spring and say "Spring is coming." "もうすぐ春が来る"
"もうすぐ" doesn't only mean "soon" but "sooner than expected before," because in the winter we can't wait until spring. Strong demand for spring makes us feel "Spring will come in the far distant future." However, at the end of winter, we can find a hint of spring and realize as much about the coming of spring. In such situation, we say "もうすぐ春が来る！"
"もうすぐ１０時になるよ。早くしてね。" = "It's almost 10 o'clock. Hurry up!"
"もうすぐ" here means "earlier than you expected" or "If you are not careful, or you'll drop behind the time." "もうすぐ" is used as mental time sense.
"すぐ" and "すぐに" means "instantaneous" or "straight"
You have two scenes in sequential order and scene changes without a pause.