Turn to point not working for different points

I’m using okapi odometry chassis and the positions and headings are perfect, but when I try to use the turn to point command it won’t turn to the same point except if i turn to + or - {52_in,52_in} in which it does without fail here is my odometry chassis

chassis = ChassisControllerBuilder()

    .withMotors(8,15,16,2)
    .withGains(
        {0.0005, 0, 0.00005}, // distance controller gains
        {0.006, 0, 0.0001}, // turn controller gains
        {0.001, 0, 0.0001}  // angle controller gains (helps drive straight)
    )
    .withSensors(
        ADIEncoder{'A', 'B'}, // left encoder in ADI ports A & B
        ADIEncoder{'G', 'H',true},  // right encoder in ADI ports C & D (reversed)
        ADIEncoder{'C', 'D', true}  // middle encoder in ADI ports E & F
    )
    .withLogger(
        std::make_shared<Logger>(
            TimeUtilFactory::createDefault().getTimer(), // It needs a Timer
            "/ser/sout", // Output to the PROS terminal
            Logger::LogLevel::debug // Most verbose log level
        )
    )
    
    // green gearset, tracking wheel diameter (2.75 in), track (7 in), and TPR (360)
    // 1 inch middle encoder distance, and 2.75 inch middle wheel diameter
    .withOdometryTimeUtilFactory(ConfigurableTimeUtilFactory(5,10,50_ms))
    .withDimensions(AbstractMotor::gearset::blue, {{2.75_in, 11_in, 5.9_in, 2.75_in}, quadEncoderTPR})
    .withOdometry() // use the same scales as the chassis (above)
    .buildOdometry(); // build an odometry chassis;