How to properly enable comments form in page template

I think it could be a problem with get_comments_number which returns numeric, though theoretically it should test this way too… you could try instead:

if ( comments_open() || have_comments() ) :
    comments_template();
endif;

OR

if ( comments_open() || (get_comments_number() > 0) ) :
    comments_template();
endif;