(Error) quines, hello world, polyglots, oh my!
C, Bash, C++, score 174.5 175
C, 301 bytes - Quine
#include&lt;stdio.h&gt;
int main(){
#ifdef __cplusplus
printf(&quot;Hello, World!&quot;
#else
char*c=&quot;#include&lt;stdio.h&gt;%cint main(){%c#ifdef __cplusplus%cprintf(%cHello, World!%c%c#else%cchar*c=%c%s%c;printf(c,10,10,10,34,34,10,10,34,c,34,10,10%c#endif%c);}//&quot;;printf(c,10,10,10,34,34,10,10,34,c,34,10,10
#endif
);}//

Try it online!
Bash, 48 49 bytes - Error quine
.code.tio: line 1: .code.tio:: command not found


Try it online! (the trailing newline was added, see comments)
C++, 349 350 bytes - Hello, World!
#include&lt;stdio.h&gt;
int main(){
#ifdef __cplusplus
printf(&quot;Hello, World!&quot;
#else
char*c=&quot;#include&lt;stdio.h&gt;%cint main(){%c#ifdef __cplusplus%cprintf(%cHello, World!%c%c#else%cchar*c=%c%s%c;printf(c,10,10,10,34,34,10,10,34,c,34,10,10%c#endif%c);}//&quot;;printf(c,10,10,10,34,34,10,10,34,c,34,10,10
#endif
);}//.code.tio: line 1: .code.tio:: command not found


Try it online!

Explainations and notes
The C quine is inspired by this C quine (the short version), and contains C++ code for the Hello, World!.
The Bash error quine works due to the TIO implementation, but given that error messages are generally implementation defined, it might be hard to print them in some standard way (other than directly outputting to stderr, which is just like a regular quine... how unoriginal would that be). The submitted Bash program may be an invalid Bash program, but it is still a valid error quine in Bash. (Edit: note the trailing newline that is now legal to output.)
The C++ Hello, World! doesn't output a trailing newline, but the challenge doesn't require it. After the preprocessor preprocessing, the only code source left is the main function with a simple printf call.
What was used in this answer are similarities between C and C++, very useful for polyglots (C is not entirely contained by C++, but it is contained enough) (for example: the usage of the C standard library is almost the same in these two languages which allows for a single #include directive, the main function definition is also similar enough to factorize the beginning and end out of the preprocessor-picked variations). The preprocessor and the __cplusplus macro are almost necessary at this point as they allow the C and C++ interpreters (or compilers, whatever) to pick only a specific subset of the program. The trailing line comment // ensures that the concatenation with a TIO Bash error doesn't upsets the C++ parser as it will completely ignore it.
I didn't find a way to to golf it even further. An other approach or a different set of languages are probably to be considered. For example, maybe using Argh! or INTERCAL for the error quine (or any other language in which error output is part of the language specification (these languages are rare, even among esolangs)). It might also be more interesting to use an other strategy than this &quot;&quot;&quot;polyglot&quot;&quot;&quot; that makes each language ignore the code designed for the other languages instead of actually running most of the code.