Sure, you can.
Each site in multisite is completely independent, so you can have completely different CPTs, taxonomies and… everything.
The problem is that if you register the CPT via a plugin, and you enable it in all sites (or network-activate it) and you use the same plugin to register taxonomies, you’ll have same taxonomies everywhere.
The simplest thing would be to create a plugin to register the CPT and taxonomies that you want in all sites (if any), then network-activate it.
After that, you can create different plugin for different taxonomies.
For example, if you “main” plugin does:
add_action('init', function() {
register_post_type( 'mycpt', [ ... ] );
});
You can have another plugin that does:
add_action('registered_post_type', function($cpt) {
if ( $cpt !== 'mycpt' ) {
return;
}
register_taxonomy( 'taxonomy_1', 'mycpt', [ ... ] );
register_taxonomy( 'taxonomy_2', 'mycpt', [ ... ] );
});
then, another that does:
add_action('registered_post_type', function($cpt) {
if ( $cpt !== 'mycpt' ) {
return;
}
register_taxonomy( 'taxonomy_3', 'mycpt', [ ... ] );
});
So you can activate on specific sites the plugins that activate the taxonomies you need.
Thanks to the fact that you use registered_post_type
action, if the “main” plugin is not activated, even if the secondary plugin are activated they will do nothing.