There are a couple of tags in csproj that I think you don't handle properly. I'm not sure if this is documented anywhere (ie: by Microsoft) but the three tags TargetFramework, Platform, and Configuration all have optional plural forms. (There may be others that I don't know about.)
As far as I know from testing, the plural forms enable delimiters. The delimiters can be spaces, so for example <Platforms>Any CPU</Platforms> can cause problems since that will be interpreted as two platforms Any and CPU. (Quotes must be used in the plural form, but in the singular form, you cannot use quotes or they will be read as part of the name.)
The problem is that Rider doesn't seem to be aware of the two kinds of tag.
TargetFramework(s): it does seem to handle this one ok.
Platform(s): the intellisense is only aware of Platform and not Platforms, but if you use Platform, Rider will automatically add a duplicate Platforms tag. It also does not provide warnings with using Platforms with one platform, or Platform with many platforms.
Configuration(s): I think the same as Platform(s): the intellisense is only aware of Configuration and not Configurations, but will automatically add a duplicate Configurations tag, and it does not provide warnings about a Configurations tag with one configuration or a Configuration tag with many.