If a boat is riding an entity the boat will no longer have an orientation to testfor.
For example If I turn the boat to face (-30.0 / ~ ) and testfor it with this command /testfor @e[tag=Boat,rym=-30,ry=-30] the results will be no entity found. Also another way to prove this I teleport my self to the boat facing (-30.0 / ~ ) and instead I face (0.0 / 0.0) normally I would face the same direction as the boat. I tested this with a boat not riding an entity and i faced the same way the boat faced. And the testfor command worked when it wasn't riding an entity.
- Summon a boat riding an entity
- Get in the boat and turn it to a position
- Teleport player to boat
→ You will notice that you are not facing the direction you were facing while riding the boat
The first image is me facing the same direction as the boat, the second is me teleporting to the boat and instead of facing the same way as the boat I face (0.0 / 0.0).
Based on 1.11.2 decompiled using MCP 9.35 rc1
The problem is that the packet CPacketVehicleMove is only sent and accepted if the lowest ridden entity can be steered. Since in this case an armor stand cannot be steered no packet will be sent and the rotation is only updated client-side. If this is the intended behavior the respective steering methods should only allow steering and rotating an entity if it is not riding another entity.