The saving logic should be like this
<?php
global $post;
$get_my_meta = get_post_meta($post->ID, 'my_meta', true);
$post_meta_name = get_post_meta($post->ID, 'name-en',true);
$meta = [
'name' => $post_meta_name,
'chap' => $season['quality_serie']
];
$updatemeta = [
$get_my_meta,
$meta
];
add_post_meta($post->ID, 'my_meta', $meta, true);
?>
And the loop logic should be like this
<?php
$first_link = get_post_meta($post->ID, 'my_meta');
if ($first_link) : foreach( $first_link as $season) :
?>
<ul>
<li>
<?php echo $season['chap'];?>
<?php echo $season['name'];?>
</li>
</ul>
<?php endforeach; endif; ?>
From your code I think that would work. If it doesn’t, could you add a print_r($first_link)
so I could replicate this in my local env for more testing?