If your issue is variable part weights, I don't think the Variable Payload Compensation Function is the tool you are looking for. This tool is more to compensate for repeatable variations in external force during a specific motion.
Just curious, what is the target weight? I'm wondering if 0.5 kg is a small or large percentage of that target weight.
What other causes of payload errors have you ruled out? Are you doing your PAYLOAD function before you grip or release, not after? And after your do your PAYLOAD instruction, are you waiting a short amount of time for the payload change to take effect before doing a move? Is your Payload Change Distance non-zero?