Hi there.
1. If your products have discounts on the original price, VM adds a class to which you can customize using CSS to show the crossed out price. (This is personalization)
2. If your question is why recently viewed products are not displayed, you can activate it from the settings. If what you want is to change the order in which it is placed, you can do it using CSS, (This is customization)
3. Natively at virtuemart it is not possible, and we have not done or helped achieve this before. If the PDF of those documents is the same for everything, I think you could put downloadable links in the email configuration, but if they are personalized for each client, I think you need a programmer or some plugin that can do this.
4. I don't know a plugin for this. I also think that the "send me a message" button is correct, because the products out of stock are shown complete, just change the Add to cart button to the send message button.
5. If it is possible but you would need to modify PHP files, unless they are 2 main sections Categories and Products then you can do it with CSS using flexbox and order (This is customization).
6. Our template generates the images with the width and height attributes, with the exception of the native SP Page Builder addons, because our addons also generate those attributes. For the logo we cannot put code that detects these attributes because they are SVG files. Not even Google itself complies with these rules.
7. I don't understand when you say: "I tried overwriting the system." To change the existing text you have to create Language overrides, the guide is here.
docs.joomla.org/J3.x:Language_Overrides_in_Joomla
(if you see that it does not work it is because you have translated a constant that is not the one shown in the text). To reorder the order of the payment methods again I think you should use CSS or check the configuration of each payment method, maybe there is an option to set it by default.
8. We have no way of checking the 500 error that you mention, what seems strange to me is that it is calling HTMLHelper when Virtuemart does not use these classes, virtuemart uses the old Jhtml.
9. If what you mean is to put a text field instead of a selectable list of options, I think you could try an extra field or a user field of type text.
Summary: I have responded to you according to what we are informed, because we do not have a link to take a look. But from our knowledge we know that all your questions are about customization (some complex) and customizations are not part of the support, but we will continue to help you in the process of finding a solution. Regarding error 500, it is up to us to verify where it comes from, whether it is from an extension that you have installed or from the template itself. If it comes from the template, we will solve it, but we need the access that you can send as confidential information.
Regards