I am editing a sonic model that I'm working on for importing it to VR chat. Is there a way I can fix this? I even tried decreasing the polycount of this model.
Welcome to Blender Stack Exchange! You've come to the right place.
Blender's automatic weighting system has some known limitations. That's not to say it's bad, it just has a few things that you have to keep in mind. The main thing that it struggles with is overlapping/intersecting geometry. In your model, there are a lot of small intersecting components. This isn't bad, it will just take a few more steps.
Blender can easily separate one object into a few, parent those, then merge them back into one object. That is what I would suggest here.
I did some quick testing on your model, using L to select sections then P to separate them. I started with the main body sections (torso, head, hands, feet, etc.) and separated them into a new object. That parented just fine, so the issue isn't there. I kept going, removing a few meshes at a time, typically in the same area (ex. wrist, scarf, mouth) until I found a group that failed. It appears to be that the 3 upper band on each leg cause issues, as do the straps on his feet. It is possible that other areas cause issues, and my selection order avoided them.
I would suggest doing exactly what I did. Select a few parts at a time, separate them, parent them, then join them again once they've been separated. If the separated objects still fail, separate them further. In the case of the leg bands, separating the middle band worked fine. Just keep going until it works. It doesn't appear that any mesh sections themselves have any issues. If they do (as in you cannot separate them any further without breaking individual parts), scale up the rig and the part by the same factor, say 10, then try parenting again. The automatic weighting system also has issues with vertices that are close together. Once it works, scale it back down by the same amount (up by 10 would be down by .1 for example) and it should be fine.