First of all,% units are not allowed in sizes . You must use vw. (Which may include the scrollbar width). So, for example, your 25% is 24-25vw. Secondly, there is no real difference between rem and em (in the context of the size attribute). If you are not using em / rem / min-width / max-width based media queries in your CSS, never use the ones that are part of your size attribute.
Basically, the sizes do not necessarily correspond to your actual image size by 100%. This means that the browser can find a suitable image candidate.
Your minimum width: the 1200px rule, as well as every use of max-width in your CSS, should clearly be part of the new media condition in your size attribute.
This leaves us with the following dimensions:
(min-width: 1200px) calc(11vw - 44px)
If you add, you have a maximum width or a media query that stops increasing the sidebar, you may be less correct and just convert 11vw - 44px to 10vw:
For instance:
sizes="<...,>(min-width: 1800px) 180px, (min-width: 1200px) 10vw, <....>"
About calc support: picturefill 3.0 beta, as well as a respirator, enable calc support for IE8 +, so that all browsers that support size have sufficient numbering support, and all respiratory multitask browsers also support calc in size.
About getting it straight. This is clearly painful, and in most cases your CMS / backend system should help here. In most projects, you must accept a limited set of allowed image formats and write down the sizes for those that fit your design. And your backend will have to attach these sizes in the right place. If this is not possible. Use either lazySizes or use srcset with sizes , at least for the most important images (that is: large image formats, because that is where you can save the data the most).
If you want, you can choose a real website and attach to it the full correct sizes. But keep in mind. It should be limited only by the width. Currently, the standard does not support images with a height limit (this is only the lazysizes function).