Bytes. Fair size depends on your site. How much are you paying for bandwidth? How large do you want the pictures people upload?
The request gets back the error from CGI itself. I don't think you can modify the error message, but I'd have to dig through the guts of CGI.pm to be sure. Certainly the docs don't seem to indicate any way for you to change the message or to detect this error has occured.
No idea. Can't even find $CGI::$max_num described anywhere. (Are you sure you need that many $$ in there?)
You can only upload one file per request, so your question does not apply.