a) The pushing force caused by the exiting air in the balloon, causes the rocket to reach until point H. The toy rocket can continue its ascent, even after the air is not expelled at point G, due to the earlier push, that can help it to reach point H, but not beyond that.
b) The balloon is light and its movement is very much influenced by the exiting air and the surrounding air friction. Hence it cannot move in a straight line as opposed to the movement of rocket that has a streamlined body.
Another possible reason, could be that the nozzle/opening of the balloon is flexible and when air exits, it vibrates and changes the direction of the exiting air. This alters the pushing force acting on the balloon causing the balloon to change direction.