Issues with FM Radio module TEA5767 library.

I am programming a digital alarm radio clock.

So far, I have added a TE5767 Stereo FM Radio module and an RTC module connected in parallel with I2C.
I am using a 16x2 LCD display.

RTC and LCD works great.

The radio search has some issues.

Here is my code

#include <TEA5767.h>
#include <Wire.h>
#include<RTClib.h>
#include<LiquidCrystal.h>

const float START_FREQUENCY=89;

RTC_DS1307 RTC;



TEA5767 Radio;

const int rs = 12, en = 11, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

//LiquidCrystal lcd(12, 11, 6, 5, 4, 3); 

double old_frequency;
double frequency;
int search_mode = 0;
int search_direction;
unsigned long last_pressed;
int value = 0;



char buffer_date[20];
char buffer_hour[10];

int address_radio= 96; 

int address_RTC= 88; 

void setup() {  



  Serial.begin(9600); 
  Serial.println("Starting....");
  Serial.println(" ");

  Wire.beginTransmission(address_RTC);
  
  RTC.begin(); 
  
  if(!RTC.isrunning()){                             
  }         
  else{Serial.println("RTC is working\n");   
  
  DateTime now = RTC.now(); 
  sprintf(buffer_date,"%02d/%02d/%02d",now.day(),now.month(),now.year());
  sprintf(buffer_hour,"%02d:%02d:%02d",now.hour(),now.minute(),now.second());
  Serial.print("\n");
  Serial.print(buffer_date);
  Serial.print("\n");
  Serial.print(buffer_hour);
  Serial.print("\n");
  
  Wire.endTransmission(); 
  
  Wire.beginTransmission(address_radio);
  
  Radio.init();
  Radio.set_frequency(START_FREQUENCY); 
  
  Wire.endTransmission(address_radio);

  
  pinMode(2,INPUT);

  lcd.begin(16, 2);  
 
   lcd.setCursor(0,0);  
   lcd.print("FREQ: ");
   lcd.print(START_FREQUENCY);
   lcd.print(" MHz");
   
}

void loop() {

  unsigned char buf[5];
  int stereo;
  int signal_level;
  double current_freq;
  unsigned long current_millis = millis();
  

  
 /*if (Radio.read_status(buf) == 1) {
    current_freq =  floor (Radio.frequency_available (buf) / 100000 + .5) / 10;
    stereo = Radio.stereo(buf);
    signal_level = Radio.signal_level(buf);
    Serial.print("FM: "); Serial.print(current_freq); Serial.print("\nLevel:"); Serial.print(signal_level);Serial.print("\nMode");
    if (stereo) Serial.print("\nSTEREO "); else Serial.print("\nMONO ");
    delay (10);
  }*/
  
  if (search_mode == 1) {
    /*  if (Radio.process_search (buf, search_direction) == 1) {
          search_mode = 0;
      }*/
    Wire.beginTransmission(address_radio);
    current_freq =  floor (Radio.frequency_available (buf) / 100000 + .5) / 10;

    stereo = Radio.stereo(buf);
    signal_level = Radio.signal_level(buf);
    Serial.print("\n");
    Serial.print("\n");
    Serial.print("FM: "); Serial.print(current_freq); Serial.print("\nLevel:"); Serial.print(signal_level);Serial.print("\nMode");
    if (stereo) Serial.print("\nSTEREO "); else Serial.print("\nMONO\n ");
    search_mode=0;
    Wire.endTransmission(address_radio);

   lcd.setCursor(0,0);     
   lcd.print("FREQ: ");
   lcd.print(current_freq);
   lcd.print(" MHz");
  }

  value=digitalRead(2);

  if(valore==1){
    last_pressed = current_millis;
    search_mode = 1;
    search_direction = TEA5767_SEARCH_DIR_UP;
    Radio.search_up(buf);
    delay(200);
      }

}

The issues are:

When I set the starting frequency and I press the upsearch button, instead of moving forward the frequency moves down of 0.8 MHz.

The signal level and stereo indicator are fixed even if the audio for the frequency it is not good.
Signal is fixed to 9, mode to stereo.

When I press the upsearch button the function should search the next station with a good signal. Actually it only moves the frequency up of 0.1 MHz per time.

When I reach the upper limit frequency of 108 MHz instead of restarting from 87 MHz it moves forward to 109 with no upper limit at all.

I believe this issues are coming from the library functions. My code seems to do what I am asking for but the output are not what I am expecting.

What do you think about that?

Many thanks!