Just as an update, it is readying the allowed branches from the appveyor.yml file, not from the website as I mentioned above. I removed an allowed branch from the website but left it in the appveyor.yml file (which is configured as an external URL), and a change to that branch still triggered a build, albeit still on the wrong branch.
Project is set up as a generic Git. Webhook payload for generic Git is not compatible with BitBucket. I am actually surprised it even started the build, it is probably compatible enough for that, but branch is not being parsed. Also generic Git does not support appveyor.yml, as described here.
Can you provide documentation on what the webhook is looking for in the payload to determine branch? I can create my own microservice that receives the BitBucket webhook and sends a request to the AppVeyor webhook, I just need to know which format it needs to correctly parse the branch. Is it looking for a Github webhook request, or some other format?