Experiencing plugin incompatibilies isn’t something I can relate to very well as that is something I’ve only faced a handful of times over the past years.
On those few occasions that I’ve needed to build a site using multiple plugins I’ve prioritized using plugins from same authors. For example WooCommerce and its official addons. I’ve found this minimizes the risk of plugins not playing nicely together. I also try to do some research beforehand to find out, if the author or other users have reported any incompatibilites.
And in general I tend to use known, tried and tested plugins, that I know they won’t cause any problems. In the case of minor problems I might fix it myself and submit the patch to the plugin author. If there are any major problems, I usually just try find another plugin that gets the same job done.
Regarding building functionalities myself. If the functionality takes only few lines of code (extra user profile fields, WooC checkout fields..), it’s something very site specific (CPTs, metaboxes..) or there’s no need for any UI, I do it myself. On few occasions I’ve “cloned” plugin functionalities to a custom plugin, because I didn’t like the way the plugin was done originally or it had unnecessary features.
Coding functionalities myself also depends on the case and client. I discuss a client about the existing plugins and their pros, cons and limitations. If a existing plugins is good enough and it’s ok with the client, I usually go with it.