If I understand you correctly, you have a Main Member type inherited by 'employee' relationship. The primary members are companies. You also have a Subsid Member type inherited by 'employee' where there the primary members are subsid companies connected to the parent company with a 'Partner of' relationship. You have tried changing the Main Member type to be inheritable by both 'employee' and 'partner' but the subdid employees are not inheriting Main Member.
That should result in your subsid companies (the orgs) inheriting Main Member type. ... but that is not related to the Subsid Member type that is inheritable by your subsid company employees.
What I think you would like is for the Main Member type to be inheritable by both 'employees' and 'employees' of 'partners' - but so far as I know Membership is only inheritable by one level of relationship. In other situations you might use a smart group, but that is not applicable to membership inheritance.
So, some possibilities:
1) You could write an extension (or maybe use CiviRules) so that employees of subsid companies are also given a direct relationship (eg 'subsid-employee') to the parent company. You would need to check for changes on the 'employee' and 'partner' relationships to add and remove the 'subsid-employee' relationship. Main Member then becomes inheritable by 'employee' and 'subsid-employee'.
2) You could write a different extension (or CiviRules) to maintain the status of Subsid Member type based on the Main Member status and 'partner' relationship but I don't think the Subsid Member type particularly helps you.
3) Alternatively you could enhance Membership inheritance to be inheritable based on group membership as well as relationship.
4) Taking things further, some kind of 'smart relationship' feature could be useful in other situations. The existing features for second-degree relationships and smart groups could provide starting points - but that might be a larger project than you wanted :-)