I managed to fix the issue by manually editing ($ProjectDir)/Service References/Reference.svcmap file. It was simple really and should have thought of it sooner. I may end up breaking something down the line (there has to be a reason for disabling the Access level for generated classes) but as long as it works for now it'll do.
Inside the file there is a tag which must be set to true:
<GenerateInternalTypes>true</GenerateInternalTypes>
I would still like to know if anyone has any information on why the Access level for generated classes is forced public when adding a Service Reference to a portable class library. So if anyone out there could shed some light, please do :)