have you tried adding a second $query->set() ?
function loop_current_month( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'monthnum', date('m') );
$query->set( 'year', date("Y") );
}
}
add_action( 'pre_get_posts', 'loop_current_month' );
This should get all the posts from the current month or this year, note date(‘m’) and date(‘Y’)