As for the first paragraph: Yes, the OS version can be changed (at your own risk) by opening said file (
/System/Library/CoreServices/SystemVersion.plist) with a plist editor of your choice and then changing the version from 5.1 to 6.0.1 or whatever you intend.
The device type can’t – and even if it could, shouldn’t – be changed, though, as there are versions for each and every device and while the OS version might change over time, the device itself obviously won’t automagically transform into another device. There is a file called after the device you’re using in many of the subfolders of
/CoreServices/, though. In case of an iPod touch 4th gen, the name would be N81ap.plist. In there, you find the capabilities of the device.
I just spoke with a friend of mine. He told me that yes, you could modify the version. But you would also have to change the ProductBuildVersion – for example from 9B208 (iOS 5.1.1) to 10A523 (iOS 6.0.1). But this, of course, might lead to failure because the app might try to use methods not available in the OS version you pretend to be using.
By copying the values of (for example) N81ap.plist to #yourDevice.plist, your device (theoratically) gets the features of n81.ap. This could also lead to failure, because Springboard (or others) might need functions not available to the device you are actually using.
For some apps, it is quite easy to set the required phone/device, though. In that case you would have to search for a value like “requires telephony” or alike.