You'd probably learn more by figuring out what I did on your own (i.e. looking at help files for unfamiliar objects, tracing signals through the patch, etc.)
I'll give you a few explanations to start you off though:
1. Originally you had a metro object banging "clear" messages to the lcd object. Since the metro object was not necessarily in sync with the rest of the patch, you were getting multiple lines drawn before the lcd cleared. I got rid of the metro and added the clear message right before the linesegment message, which guarantees that the previous line will be cleared before the next one is drawn.
2. Starting from the top of the patch and working down, I changed the location of the change object so that the transport's tempo is only sent out if it changes, so that you can still freely change the tempo from the number box. From there, I sent the tempo to an [int] object, where it is stored. The tempo (in milliseconds) gets banged out of the int object through a gate. Initially, the tempo goes out the left outlet of the gate. It gets to a trigger object, which first triggers a 2 to open the gate's second outlet, and then the trigger object outputs the int (tempo) to the rest of the patch which sets up the line object. Once the line object is done, it sends a bang back up to the int object (I do it this way so that if you change the tempo, the tempo doesn't actually change until you get to the next beat). This time, the tempo goes through the gate and goes out the right outlet. The gate gets switched back to 1 and the process continues.