Congratulations on getting your feet wet with PID. It's fun, and an incredibly useful concept to have practical experience with. Last year my roommates were taking a control systems class and were frustrated trying to understand PID - but it made sense to me, because I've seen it in action and gotten my hands dirty coding it.
Now, to your questions: I think you're making it too complicated. (It's ok - It took me weeks to distill PID when I was learning it, but now I can code it in half a dozen lines.)
Think about it this way: you have a sensor input which produces a range of values, which you want to use to control the position of the output. The first thing to do is to translate the input sensor value to the output sensor value. This will probably be a linear function, based on the center readings and range of the sensors.
Once you have a target measurement, you compare it with the current measurement. This is your error. If the measurements are the same (error is zero), then you don't want to move. If the error is large, you want to move fast. If it's small and negative, you want to move slowly in the other direction.
If I have a control input from 200 to 800 (center of 500) and a measurement ranging from 0 to 800 (center of 400), the code would look something like this:
Code:
control = readInputValue(); // AnalogRead or whatever you do to get the input
// Convert to sensor range: Subtract the input offset to center
// around 0, multiply by the range scale, and add the output offset
target = (input - 500) * (500/300) + 400;
current = readSensorValue();
error = target-current;
outputPower = error * kP; // Assuming output is +/- 127 or similar
Note that you can't compute kP without modeling the underlying system and doing some nasty mathematical analysis. The best way to determine it is to experiment with some different values and see how they perform.
I wouldn't use the RoboClaw's built-in PID to start off. You'll learn more and be less frustrated if you code the feedback loop yourself. I used a RoboClaw 2x5A with and Arduino last year for my senior design project. I selected the RoboClaw specifically because it could handle the PID loop without the Arduino having to do any heavy lifting, but the interface and tuning took a lot of debugging time.