If you are interested in getting involved in a "big" FOSS project, I would suggest two things:
1. Go on the IRC dev channel for the project. There you can get to know the developers, and discover from the quirks of the code base, and any other misc. help you may need.
2. Go to the website of the project and look for a beginner's todo list. Many major projects have these, I know GNOME does. The list is basically some simple tasks that need to be done and make it easy for new developers to learn the code base.
Aside from these two examples, the best advice I can give you for learning any poorly documented code is to use exuberant-ctags in vi or emacs. Using tags, you can easily jump through the codebase, following the logic of the code. This is far easier than manually looking up function definitions when you want to see what a function does. I'm afraid I didn't describe ctags particularly well, but a bit of googling should get you up to speed.