The most recent version of the modules exist in \Perl\site\lib, but the version ppm says I have is the version in \Perl\lib.
What's the default setting for @INC
should tell you)?
When looking for a module, the directories in @INC are searched in order. Once said module is found, the remaining directories are ignored. So if \Perl\lib is in front of \Perl\site\lib then whatever is in \Perl\lib takes precedence and the only way anything will change is if you install the upgraded version in \Perl\lib which you need to tell PPM to do explicitly (I believe upgrade --precious does this) and which, depending on what you're upgrading, may possibly break your perl installation, which is why the packager folks generally try to make this sort of thing hard to do by accident...