Current sensing issues

issues reading the total current sent to the motor. My set up consists of a GM3506 Gimbal Motor (5.6ohms) a MKS Dual FOC board and an esp32 dev board. According to the schematics the MKS board has a 0.01ohm resistor and a op amp gain of 50. I set that up using InlineCurrentSense(0.01f, 50.0f, 35, 34); but when I call getDCCurrent() it is inaccurate. From following tests I noted that the power supply current was 0.27amps while the getDCCurrent() read about 1.2 amps. I also tried at a current of 1.10 amps from the power supply and the getDCCurrent() read about 2.4 amps. So it’s consistently reading higher than the real current. I cant figure out what is going on. Ive tried messing with th eInlineCurr entSense(0.01f, 50.0f, 35, 34); values just in case and also changing the the gain_b and gain_a to -1. I also switched out the esp32 incase its ADC was the problem but to no avail. Please I would appreciate any help with this.
Notes: using Simple FOC library 2.3.2
code for reference:

#include <Arduino.h>
#include <SimpleFOC.h>

MagneticSensorSPI sensor2 = MagneticSensorSPI(AS5147_SPI, 15);
BLDCMotor motor2 = BLDCMotor(11);
BLDCDriver3PWM driver2 = BLDCDriver3PWM(26, 27, 14, 12);  //MKS esp32

InlineCurrentSense current_sense2 = InlineCurrentSense(0.01f, 50.0f, 35, 34);  //MKS dual foc esp32


// Motor and Actuator 2 parameters
float target_angle_m2 = 0;                // Radians - motor
float target_angle_a2 = 0;                // Radians - actuator
float angle_a2;                           // Radians
float velocity_a2;                        // Radians per second
float angle_offset_m2 = 0;                // Radians
float joint_stop_a2 = 15 * (PI / 180.0);  // Radians - Joint stop angle from zero


unsigned long homingTime;

// instantiate the commander
Commander command = Commander(Serial);

void doTarget(char* cmd) {
  command.scalar(&target_angle_a2, cmd);
}


void Homing() {
  bool homing_m2 = true;  //when homing true, false when home has been found

  homingTime = millis();

  target_angle_m2 = motor2.shaft_angle;


  motor2.move(target_angle_m2);

  while (homing_m2) {
    motor2.loopFOC();
    motor2.move(target_angle_m2);

    if (millis() - homingTime > 50) {

      //Motor 2 Homing
      if (abs(motor2.voltage.q) < 1.5 && homing_m2) {
        target_angle_m2 -= .3;
        motor2.move(target_angle_m2);

      } else if (homing_m2) {
        angle_offset_m2 = motor2.shaft_angle;
        homing_m2 = false;
        target_angle_m2 = .5 + angle_offset_m2;
        motor2.loopFOC();
        Serial.print("Homing Found M2");
        Serial.print(angle_offset_m2);
        Serial.print("        ");
      }

      Serial.print("     M2 Tθ:");
      Serial.print(target_angle_m2);
      Serial.print(" V:");
      Serial.println(motor2.voltage.q);
      //Serial.print("  A:");
      //Serial.println(current_sense1.getDCCurrent());  // total current in Amps

      homingTime = millis();
    }
  }
}

void setup() {

  // use monitoring with serial
  Serial.begin(115200);
  // enable more verbose output for debugging
  // comment out if not needed
  SimpleFOCDebug::enable(&Serial);

  // initialise magnetic sensor hardware
  sensor2.init();
  // link the motor to the sensor
  motor2.linkSensor(&sensor2);

  driver2.pwm_frequency = 20000;

  // driver config
  // power supply voltage [V]
  driver2.voltage_power_supply = 24;
  driver2.voltage_limit = 24;  // max voltage to motor
  driver2.init();

  // link the motor and the driver
  motor2.linkDriver(&driver2);

  // link current sense and the driver
  current_sense2.linkDriver(&driver2);


  // current sense init hardware
  current_sense2.init();

  //current_sense2.gain_b *= -1;
  //current_sense2.gain_a *= -1;

  // link the current sense to the motor
  motor2.linkCurrentSense(&current_sense2);


  // choose FOC modulation (optional)
  motor2.foc_modulation = FOCModulationType::SpaceVectorPWM;

  //motor.torque_controller = TorqueControlType::foc_current;
  //motor.current_limit = 1;  // Amp limit

  // set motion control loop to be used
  motor2.controller = MotionControlType::angle;

  // contoller configuration
  // default parameters in defaults.h

  // velocity PI controller parameters
  motor2.PID_velocity.P = .1;
  motor2.PID_velocity.I = 2;
  motor2.PID_velocity.D = 0;

  // maximal voltage to be set to the motor
  motor2.voltage_limit = 12;  //8

  // velocity low pass filtering time constant
  motor2.LPF_velocity.Tf = 0.01f;

  // angle P controller
  motor2.P_angle.P = 10;

  // maximal velocity of the position control
  motor2.velocity_limit = 190;  

  // comment out if not needed
  motor2.useMonitoring(Serial);

  // initialize motor
  motor2.init();
  // align sensor and start FOC;
  motor2.initFOC();

  // add target command T
  command.add('T', doTarget, "target angle");

  Serial.println(F("Motor ready."));
  Serial.println(F("Set the target angle using serial terminal:"));
  _delay(1000);


  // Homing %%%%%%%%%%%%%%%%%%%%%%
  Homing();

  target_angle_a2 = 0;
}


void loop() {
  //PhaseCurrent_s currents = current_sense.getPhaseCurrents();


  // main FOC algorithm function
  // the faster you run this function the better
  motor2.loopFOC();

  target_angle_m2 = target_angle_a2 * 9;

  motor2.move(target_angle_m2 + angle_offset_m2 + (joint_stop_a2 * 9));



  // monitor angles & velocity at ~10 Hz
  static unsigned long t_last = 0;

  if (millis() - t_last > 150) {
    t_last = millis();

    angle_a2 = (motor2.shaft_angle - angle_offset_m2) / 9 - joint_stop_a2;

    velocity_a2 = motor2.shaft_velocity / 9;

    // Actuator Stats:
    Serial.print("     θ2:");
    Serial.print(angle_a2, 3);
    Serial.print("  ω2:");
    Serial.print(velocity_a2, 3);
    Serial.print("  Vq2:");
    Serial.print(motor2.voltage.q, 2);
    Serial.print("  A2:");
    Serial.print(current_sense2.getDCCurrent());  // total current in Amps

    Serial.println();

    // user communication
    command.run();
  }
}

It’s probably working. Motor current should be higher than power supply current unless you’re spinning as fast as the power supply voltage can drive it. The motor windings and transistors effectively make a buck converter to step the high voltage input down to low voltage in the motor.