Shouldn't you remove the loop and increase or decrease p only after handling the event of clicking
the buttons NEXT and PREVIOUS?
I'm sure there is a way to access p as an array accessing the right paragraph you are interested in.
See the kind of variable that p is and how it is declared and how you can access it.
Then you should put something like:
i = i + 1
TextBox.Text = p[i].range.text
In the event handler for pressing the NEXT button.
i = i - 1
TextBox.Text = p[i].range.text
In the event handler for pressing the PREVIOUS button.
Be careful with the minimum and maximum values allowed in the "array", list or type of p.
If there is no way to iterate in a controlled way through p (I seriously doubt it) you could of course do what you are doing putting each paragraph inside a handmade array. Then you could use that array in your code to represent what you want.
This is not the code, but a few pointers on how I would approach the issue.
Good luck.