How does the D Flip Flop work and WHY does it hold its value?
Note that I teach this stuff, so rather than giving you the answer I'll try to let you figure it out for yourself, which is far more usefull in the long term. I hope the other answers won't spoil this approach.

Try to understand the two NANDs at the right side first. When both inputs (S and R) are 1, what will the outputs be? Try for yourself. Assume Q is 1, is that a stable state? And is Q = 0 a stable state?

Now figure out what happens when S = 0 (R still 1). 

And what happens when AFTER S = 0 / R= 1 we go back to S= 0 / R = 0.

When you understand that part, take a look at the left two NANDs. What are their outputs when CLC = 0? And what when CLK = 1?

P.S. Two students of mine just completed building a 16-bit CPU from 74HC-level chips (they used ALU chips, which is a bit of cheating IMO). It took them ~ 6 months.