This looks flawed:
add_theme_support( 'post-thumbnails', array( 'post' ) );
add_theme_support( 'post-thumbnails', array( 'page' ) );
Do you see the post thumbnail box on pages? If so, you have just overwritten the support on posts with the second declaration.
Better:
add_theme_support( 'post-thumbnails', array( 'post', 'page' ) );