Você poderia simplesmente configurar dois conjuntos de Hotkeys e Hotstrings diferentes, um para cada layout e usar #If para fazer um conjunto ativo, um exemplo copiado do fórum AutoHotkey abaixo.
; question: http://autohotkey.com/board/topic/150272-allow-script-to-run-only-with-one-keyboard/
; code from: http://forum.script-coding.com/viewtopic.php?id=7396
#If (GetKeyboardLayout("A") = 4105) ; 4105 = 0x1009 https://msdn.microsoft.com/en-us/library/aa912040
; your hotkeys here
#If
GetKeyboardLayout(ByRef window)
{
return DllCall("GetKeyboardLayout", "UInt", DllCall("GetWindowThreadProcessId", "Int", WinExist(window), "Int", 0), "UShort")
}