Ah yes, here is the code from the project I attached in case you want to ponder it in your free time. If you see anything interesting/suspicious about it, let me know. But yes, the issue is solved 
Here is the header file:
`UCLASS()
class TESTMSINTERFACE_API UTestMetasoundInterfaces : public UObject
{
GENERATED_BODY()
public:
virtual void PostInitProperties() override;
protected:
static void RegisterInterfaces();
};
namespace Audio
{
namespace InterfaceOne {
const extern FName InterfaceName;
namespace Inputs {
const extern FName InputOne;
}
const FMetasoundFrontendVersion& GetVersion();
Audio::FParameterInterfacePtr GetInterface();
}
namespace InterfaceTwo
{
const extern FName InterfaceName;
namespace Inputs
{
const extern FName InputTwo;
}
const FMetasoundFrontendVersion& GetVersion();
Audio::FParameterInterfacePtr GetInterface();
}
}`and the .cpp file is below. In .cpp, line 27 and line 41 in InterfaceOne have the version mismatch I was talking about.
`void UTestMetasoundInterfaces::PostInitProperties()
{
UObject::PostInitProperties();
RegisterInterfaces();
}
void UTestMetasoundInterfaces::RegisterInterfaces()
{
using namespace Metasound::Engine;
Audio::IAudioParameterInterfaceRegistry& InterfaceRegistry = Audio::IAudioParameterInterfaceRegistry::Get();
InterfaceRegistry.RegisterInterface(Audio::InterfaceOne::GetInterface());
InterfaceRegistry.RegisterInterface(Audio::InterfaceTwo::GetInterface());
}
#define LOCTEXT_NAMESPACE “AudioParameterInterface”
#define AUDIO_PARAMETER_INTERFACE_NAMESPACE “Custom.InterfaceOne”
namespace Audio
{
namespace InterfaceOne
{
const FName InterfaceName = AUDIO_PARAMETER_INTERFACE_NAMESPACE;
const FMetasoundFrontendVersion& GetVersion()
{
static const FMetasoundFrontendVersion Version = { AUDIO_PARAMETER_INTERFACE_NAMESPACE, { 1, 2 } };
return Version;
}
namespace Inputs
{
const FName InputOne = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE(“InputOne”);
}
Audio::FParameterInterfacePtr GetInterface()
{
struct FInterface : public Audio::FParameterInterface
{
FInterface()
: FParameterInterface(InterfaceOne::InterfaceName, { 1, 0 })
{
Inputs =
{ {
FText(),
NSLOCTEXT(“InputOne”, “Test”, “test”),
Metasound::GetMetasoundDataTypeName(),
{Inputs::InputOne, 0},
FText(),
0
}
};
}
};
static FParameterInterfacePtr InterfacePtr;
if (!InterfacePtr.IsValid())
{
InterfacePtr = MakeShared();
}
return InterfacePtr;
}
}
#undef AUDIO_PARAMETER_INTERFACE_NAMESPACE
#define AUDIO_PARAMETER_INTERFACE_NAMESPACE “Custom.InterfaceTwo”
namespace InterfaceTwo
{
const FName InterfaceName = AUDIO_PARAMETER_INTERFACE_NAMESPACE;
const FMetasoundFrontendVersion& GetVersion()
{
static const FMetasoundFrontendVersion Version = { AUDIO_PARAMETER_INTERFACE_NAMESPACE, { 1, 2 } };
return Version;
}
namespace Inputs
{
const FName InputTwo = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE(“InputTwo”);
}
Audio::FParameterInterfacePtr GetInterface()
{
struct FInterface : public Audio::FParameterInterface
{
FInterface()
: FParameterInterface(InterfaceOne::InterfaceName, { 1, 0 })
{
Inputs =
{ {
FText(),
NSLOCTEXT(“InputTwo”, “2Test”, “2test”),
Metasound::GetMetasoundDataTypeName(),
{Inputs::InputTwo, 0},
FText(),
0
}
};
}
};
static FParameterInterfacePtr InterfacePtr;
if (!InterfacePtr.IsValid())
{
InterfacePtr = MakeShared();
}
return InterfacePtr;
}
}
#undef AUDIO_PARAMETER_INTERFACE_NAMESPACE
}`