Seems to me that the two sentences mean different things.
Yes, they do mean something different. Both are grammatically correct.
No, they mean the same thing, albeit arrived at via different grammatical paths.
You have:
A. You have to milk it for all it's worth.
B. You have to milk it for all its worth.
These parse as:
A. You have to milk it for all (it is worth).
B. You have to milk it for all its worth.
it is worth == its worth