There are a couple of questions in your post.
Essentially, when you are deriving the linearized equations of motion (EOM) you do so around an operating point (also called trim point). If you want the cart to stay in place you trim around ve = 0. If, on the other hand, you are interested in linearizing about a constant velocity you trim around ve = c1 (move forward) or ve = -c2 (move backward), c1 and c2 being positive constants.
Note, that the parameters of the PID controller depend on the trim point. Therefore, in general, you will get different controllers for the three scenarios described above. Especially, when using your PID controllers on the non-linear system, they will only work in a bounded region around the trim points.
One way you could implement a moving cart within bounds is to prescribe a particular path. In other words, you'd define a desired position and velocity as a function of time, x_des(t) and y_des(t), and switch between the different PID controllers depending on whether the cart is stationary or moving.