Mission Planner Home Update Plugin affect VTOL's altitude indication

below is my plugin code :

 public override bool Loop()
        {
            String text_to_overlay = "";

            foreach (MAVLinkInterface mav in MainV2.Comports)
            {
                if (mav.sysidcurrent != 0) //nothing connected
                {
                    //var paramList = mav.getParamList((byte)mav.sysidcurrent, (byte)mav.compidcurrent);
                    //foreach(var param in paramList)
                    //mav = comport object
                    if (mav.MAV.cs.firmware == MissionPlanner.ArduPilot.Firmwares.ArduPlane)
                    {
                        plane_lat = mav.MAV.cs.Location.Lat;
                        plane_lng = mav.MAV.cs.Location.Lng;
                        plane_alt = mav.MAV.cs.Location.Alt;
                        plane_home_lat = mav.MAV.cs.HomeLocation.Lat;
                        plane_home_lng = mav.MAV.cs.HomeLocation.Lng;
                        Console.WriteLine("RCVD Plane PSN.");
                        MAVLink.mavlink_command_long_t cmd = new MAVLink.mavlink_command_long_t
                        {
                            target_system = mav.MAV.sysid,
                            target_component = mav.MAV.compid,
                            command = (ushort)MAVLink.MAV_CMD.DO_SET_HOME,
                            param1 = 0,
                            param5 = (float)ship_lat,
                            param6 = (float)ship_lng,
                            param7 = (float)30 //altitude
                        };
                        if ((ship_sysid != 0) && (ship_compid != 0) && (is_home_updating_running))
                        {
                            mav.sendPacket(cmd, mav.sysidcurrent, mav.compidcurrent);
                            Console.WriteLine("Home position updated.");
                            Console.WriteLine(ship_lat);
                        }
                    }
                    else if (mav.MAV.cs.firmware == MissionPlanner.ArduPilot.Firmwares.ArduRover)
                    {
                        ship_sysid = mav.sysidcurrent;
                        ship_compid = mav.compidcurrent;
                        ship_lat = mav.MAV.cs.Location.Lat;
                        ship_lng = mav.MAV.cs.Location.Lng;
                        Console.WriteLine("RCVD Boat PSN.");
                        //Console.WriteLine("Ship Lat : " + mav.MAV.cs.Location.Lat);
                    }
                }
            }

this code updates home position with altitude 30m.

because I have to operate VTOL on moving ships in deep sea for far long distance, I need this plugin deadly.

if I use this plugin I experience mission planner altitude goes -17m when the plane is on the ground.

this is the relavant link :