-snip-
For what you do
p+??? I am realy do not understand you. I was explain you how need substract range from pub and then get back.
All values should be by modulo p. But you with p+ do something else..
Edit: and what is it

pointstr = '043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9'
pointstr should be compressed! becouse after that pt= getuncompressedpub(pointstr)
change
043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
to
033aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a0
here is result
shifted result> 043da25db054a78e5253f461a104759d559526c02565ef9b966662cb0299e95ebc8f068e4c209fc9e9053dfc3419a0cef6bccd931a514aec5900e5a17a031e64a6
result> 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9