It doesn’t matter if I have more than one comment. get_comments_number still equal to one?

I think the problem is here

>] <h3 id="comments-title"><?php
    printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number() ),
    number_format_i18n( get_comments_number() ), '<em>' . get_the_title() . '</em>' );
    ?></h3>

Try changing that to

<h3 id="comments-title"><?php
printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', number_format_i18n( get_comments_number() ), '<em>' . get_the_title() . '</em>' );
?></h3>