I got it! For any one in the future with the same problem:
ACF’s get_field_object()
apparently makes a WP_Query and doesn’t clean up after so, since I called it for every post, I always got the same post after a certain point in the elaboration. I found the solution in this question.
Some code for clarity:
<?php while ( $query->have_posts() ) : $query->the_post();?>
<h1><?php the_title();?></h1>
//Some more prints
<?php $field = get_field_object('my_field');
$value = intval($field["value"]);
$label = $field["choices"][$value];
echo $label;
//From this point on every custom field or other data came from the same post
?>
There are probably better ways to fix this, but it is simple and it works fine:
<?php while ( $query->have_posts() ) : $query->the_post();?>
<h1><?php the_title();?></h1>
//Some more prints
<?php
$backup = $post; //Backing up the current post
$field = get_field_object('my_field');
$value = intval($field["value"]);
$label = $field["choices"][$value];
echo $label;
$post = $backup; //Restoring the post
?>