I believe all of the "Attempt to redefine entity" errors have been resolved in puppet 6.18.0so I'm going to close this. Please reopen if it is still an issue, and please include steps to reproduce.
In my case quick upgrade from Puppet 5 to 6 is not an option, but I did work around the issue by replacing code like:
resource { 'foo':
ensure => present,
require => My_failing_resource['bar'],
}
with something like:
my_failing_resource { 'bar':
-> resource { 'foo':