You mix up things.
Jenkins gives you the latest change that led to the build with %P4_CHANGELIST%
.
But with the perforce command p4 submit -c changenumber
you tell perforce to submit a (yet unsubmitted) change. That cannot work.
Obviously you want to submit a completely new change.
For that you don't need to refer to any existent changenumber.
You just do:
p4 edit //abc/xyz.txt
p4 submit -d "description"