I have found the problem and have fixed it.
The problem, I found after re-reading the RIFF standards, was that when a chunks data is uneven a padding byte will be added but that byte does not show up on the chunks size, so all I did in the RIFFList init code was I told it to add one to the position number if the chunk it was reading was uneven.