Ardusub gazebo sitl heading issue

i am building a gazebo-sitl simulation using bluerov2 vectored frame but with our cadded model

on manual mode the model drives perfectly but when i switch to depth hold mode the model flies to the water surface and starts rotates in orbit motion while tries to flies over the water

and when switch to stazbilize mode the model yaws right for 180 degree and then yaws left for a continous motion

this is my gazebo - ardusub orientation part is it true?

<gazebo>

    <plugin filename="libArduPilotPlugin.so" name="gz::sim::v8::systems::ArduPilotPlugin">

<fdm_addr>127.0.0.1</fdm_addr>

<fdm_port_in>9002</fdm_port_in>

<fdm_port_out>9003</fdm_port_out>

<!-- Pitch 180 degrees (0 0 0 0 3.14 0) flips the backward X-axis forward and maps Z to Down -->

<modelXYZToAirplaneXForwardZDown>0 0 0 0 3.141593 0</modelXYZToAirplaneXForwardZDown>

<!-- Roll 180, Yaw 90 correctly translates Gazebo's East-North-Up world to ArduPilot's North-East-Down -->

<gazeboXYZToNED>0 0 0 3.141593 0 1.570796</gazeboXYZToNED>

<imuName>imu_sensor</imuName>

<connectionTimeoutMaxCount>5</connectionTimeoutMaxCount>

and this is my urdf and imu orientation

 <!-- Imports the ArduSub SITL plugin and channel mappings -->

  <xacro:include filename="ardusub.urdf.xacro" />

<!-- ================= BASE LINK (REP-103 ORIENTATION FIX) ================= -->

<link name="base_link" />




<joint name="base_to_center_body" type="fixed">

<parent link="base_link" />

<child link="center_body_link" />

<origin xyz="0 0 0" rpy="1.5708 0 -1.5708" />

</joint>




<!-- ================= CENTER BODY LINK ================= -->

<link name="center_body_link">

<inertial>

<!-- Shift center of mass DOWN 5cm (-Y in SolidWorks frame) for pendulum stability -->

<!-- Shift center of mass backwards by 2.48mm (-Z in SolidWorks frame) to counterbalance forward thrusters and ZED camera -->

<origin xyz="0 -0.05 -0.00248" rpy="0 0 0" />

<mass value="20.277556" />

<inertia

ixx="0.130363" ixy="0.0" ixz="0.0"

iyy="0.128936" iyz="0.0" izz="0.143796" />

</inertial>

<visual>

<origin xyz="0 0 0" rpy="0 0 0" />

<geometry>

<mesh filename="package://robot_description/meshes/center_body_link.STL" />

</geometry>

<material name="">

<color rgba="0.792156 0.819607 0.933333 1" />

</material>

</visual>

<!-- Simplified collision box MUST remain for Gazebo Buoyancy calculation to work -->

<collision>

<origin xyz="0 0 0" rpy="0 0 0" />

<geometry>

<!-- Corrected axes: X=Width(0.30), Y=Height(0.1541), Z=Length(0.45). -->

<!-- Volume = 0.020801 m^3, exactly floating the 20.76kg total mass in 998 kg/m^3 freshwater -->

<box size="0.30 0.1541 0.45" />

</geometry>

</collision>

</link>




<!-- ================= IMU SENSOR LINK (ADDED FOR ARDUSUB) ================= -->

<link name="imu_link">

<inertial>

<mass value="0.01"/>

<origin xyz="0 0 0" rpy="0 0 0"/>

<inertia ixx="1e-5" ixy="0" ixz="0" iyy="1e-5" iyz="0" izz="1e-5"/>

</inertial>

</link>




<!-- Attached to base_link so it stays perfectly level -->

<joint name="imu_joint" type="fixed">

<parent link="base_link"/>

<child link="imu_link"/>

<origin xyz="0 0 0" rpy="0 0 0"/>

</joint>

iam using AP: ArduSub V4.7.0-dev (375cef58)
and QGC V.5.0.8