A very useful article can be found here.
Answers:
The expiration date is part of the file. So you'll get a new file.
No. When your file is signed and timestamped, the signature will not expire when the certificate expires (explained in the linked article).
.snk files are for strong naming assemblies. These are generally signed using self-signed certificates, since strong naming is not meant to verify the authenticity of the publisher. See also this answer.
Normally you would use the same .snk file to sign all your assemblies. However, strong naming only exists in the .NET world, and won't apply to any other binaries (like VB 6).