Acho que você deve ter encontrado uma falha estranha no SSMS. Consegui criar seu esquema usando o SSMS 2014 sem erros. Ele pré-preencheu as três colunas de chave primária composta ao adicionar o novo FK. Tive o cuidado de garantir que todos estivessem em branco antes de começar a adicionar as duas colunas no FK. Talvez o SSMS tenha pensado que uma das linhas em branco ainda continha dados.
Editar:Acabei de pensar mais, o SSMS é conhecido por armazenar em cache todas as alterações feitas ao editar uma tabela. Por exemplo, se você for modificar duas tabelas e tiver ambas as janelas de edição abertas. Em seguida, você altera o PK em uma janela e tenta referenciá-lo na segunda janela, ocorrerá um erro porque armazenou em cache o que era o esquema para a primeira tabela quando a janela foi aberta pela primeira vez.
Aqui está meu DDL gerado:
CREATE TABLE [dbo].[AppRegion](
[appname] [nvarchar](50) NOT NULL,
[isocode] [char](5) NOT NULL,
CONSTRAINT [PK_AppRegion] PRIMARY KEY CLUSTERED
(
[appname] ASC,
[isocode] ASC
)
) ON [PRIMARY]
CREATE TABLE [dbo].[Translation](
[ResourceKey] [nvarchar](128) NOT NULL,
[appname] [nvarchar](50) NOT NULL,
[isocode] [char](5) NOT NULL,
[text] [nvarchar](400) NULL,
CONSTRAINT [PK_Translation] PRIMARY KEY CLUSTERED
(
[ResourceKey] ASC,
[appname] ASC,
[isocode] ASC
)
) ON [PRIMARY]
ALTER TABLE [dbo].[Translation] ADD CONSTRAINT [FK_Translation_AppRegion] FOREIGN KEY([appname], [isocode])
REFERENCES [dbo].[AppRegion] ([appname], [isocode])