Generic solution for sharing a secret is Shamir's algorithm. This is not hard to implement, but it requires some mathematical knowledge. I am not aware of a ready-to-use open-source .NET implementation.
An easier solution is to use a hash function. If you have n people who each own a "secret element", then just concatenate all the secret elements in due sequence, hash the lot with SHA-256, and take the first 128 bits of the SHA-256 output as key for AES-128. This scales to more than two shares, and avoids any potential issue with a "partially known" AES-256 key; also, it lets you use the much more sensible AES-128.
There is no known issue with a half-known 256-bit AES key, but AES is known to be somewhat flaky with regards to related-key attacks which, from a general overview, somewhat look to be potentially relevant. To be brief, it seems somewhat risky to rely on AES being robust against partially revealed keys.