on a tamed wolf, calling setOwner() appears to successfully update the owner of the wolf, but the original owner is still followed and can still make the wolf sit and stand. The new owner is treated as though he does not own the wolf until the server is restarted.
on server restart the wolf properly respects the newly set owner.
i believe setOwner() worked properly in:
git-Spigot-8a983f9-e81edfc (MC: 1.8) (Implementing API version 1.8-R0.1-SNAPSHOT)
i (think i) noticed this issue first in:
git-Spigot-5391d73-0ebb9c7 (MC: 1.10.2) (Implementing API version 1.10.2-R0.1-SNAPSHOT)
it is still an issue in:
git-Spigot-83d9d09-595ec64 (MC: 1.13-pre7) (Implementing API version 1.13-pre7-R0.1-SNAPSHOT)
Edit:
Noticed my comment from 2017, since Ocelots also have this issue i assume it is possibly a problem in a class they are both derived from, and parrots will also have this problem, although i have not tested parrots.
another Edit:
i discovered this vanilla command added in 1.13: https://minecraft.gamepedia.com/Commands/data
using that command you can do
/data merge entity <entityUUID here> {OwnerUUID:<playerUUID here>}
to set the owner of a tameable animal, and
/data remove entity <entityUUID here> OwnerUUID
to remove the owner. It works in vanilla 1.13-pre7 but does not take effect until server restart on spigot 1.13-pre7.
I'm not sure what other info I can provide, but i will add more info with another edit if i think of anything to try.