Hi, I'm the author of secp256k1_nostr.
We also stumbled upon the invalid signature errors while working on the nostrver-se/nostr-php library and figured out the fix: https://github.com/public-square/phpecc/pull/1
However the fix never got merged, so I did yet another fork of phpecc that includes it in case someone really needs a working PHP implementation of Schnorr signatures (uma/phpecc v0.1.3).
Besides the poor speed the problem with phpecc and all its forks is that they are not maintained at all (including mine!). Relying on libsecp256k1 is way better.