Collation is SQL_Latin1_General_CP1_CI_AS returned from that query...
I suspect it would be easy for anyone to reproduce unless something in our setup is weird.
Here's a quick script...
create proc test @test1 varchar(128) as
select * from sys.objects where [name] = @test1
exec sp_describe_undeclared_parameters N'exec test @test1 =@P1'
exec sp_describe_undeclared_parameters N'exec test @test1 =@P1'
exec test @test1 = 'test'
exec test @test1 = 'test'
The sproc is created fine for me, the first sp_describe_undeclared_parameters runs fine, the second returns the error about the parameter not being valid, and the last two both run successfully.