I am facing a situation very similar to yours were I have multiple screens and in many cases, control states, text, etc are duplicated across screens. Originally, I was going to just split the resx
files up by screen and have duplicate key/value pairs, but when you really think about it, they are the same today, but that doesn't mean that one key/value pair could mean two different things in the future. Anyways, here is what I would do:
I would have a common resx file that contained keys that are common to all screens, etc. I would then have a resx files that are unique to the screen, but these resx files could also contain keys that are in the common resx and then you could have a method that would would check if their is a value in the specific resx and if it finds it, it uses that, otherwise, it uses the value from the common resx file.
I don't really think there is a convention, I typically name my keys the same way I name my variables.
I think it is OK to have duplicate keys if in the future, those keys, could potentially mean something else or need to have different values.
I like to think of resx files like database tables. You can stuff resx key/value into one table and have one long denormonalized table or you can split up the resx key/value into smaller tables. I prefer the latter because it allows for better scalability in the future.