Transactional Replication failing between SQL Server 2012 and SQL Server 2016 versions
The other half of the version requirements is that your distributor be the highest SQL Server version in your Replication topography.

In your case, you are replicating from SQL Server 2012 to SQL Server 2016, which works only if your distributor is also SQL Server 2016.

If you are running your distribution database on your 2012 publisher, configuration will fail when you add the subscriber because a subscriber is at a higher version than the distributor. You would need to either run a dedicated distributor (recommended), or use your 2016 subscriber as the distributor server.

The error message you posted is deceptive because it's not a subscriber/publisher version issue, but rather a subscriber/distributor version issue.