I messed with it today, and tested out the piston and all that by covering the nozzle with one finger and pushing the piston into the cylinder to test the resistance. Sometimes it would go very easily, other times it wouldn't. Sometimes the part near the nozzle that has the O-ring on it would slip out. I taped that up a little bit to try and keep the compression.
Then I reexamined my hopup, and got it all assembled about as well as I ever have. I should mention that the frontmost part of the hopup is broken off but held in place. Its the part to the left of the 'u' shaped clamp on the right in this picture

Anyway, even after I messed with those two things it still couldn't put a hole in a coke can with .20g BB's. What else can I do to fix the compression? I am pretty sure thats the problem.