It works quite poorly. Money distribution is reasonable, but there are a great many ways that XP disparity can exist and the game's mechanics seem to only exist to further this disparity. There are some mods that have been developed to try and force equalized XP distribution, but even then they do not cover all cases and XP disparity can still crop up.
As of the latest patch, "loot from dead enemies is now always identical for all co-op players". Further research and testing reveals that all money received is identical for all co-op players in the sense that when someone picks up money from an enemy or loot container, all co-op players get that same amount of money with the exception of those with money boosting abilities who would have the amount that they receive modified by those abilities.
Skills that increase XP, even if they claim to affect everyone in co-op have been reported to only do so for those in very close proximity. It would appear that these skills would only affect players with those skills active when co-op players are not bunched up. Obviously individually affecting skills will only affect the individual. This is a great way to further XP disparity.
Quest rewards are a bit more problematic. Each player in a co-op game may need to turn in a quest to get the rewards. Quest XP is far more challenging to explain. If the co-op players are not at the same points in the campaign, only players at or beyond the host's campaign progress will get quest XP. As of the latest patch, "in subsequent playthroughs XP is awarded for all quests completed in co-op" so for those players who have completed the game, they should receive XP, even when they aren't up to that point in single-player campaign again. It has been noted that sometimes, quest XP rewards have not been received in co-op when both players are at the same point in the campaign and the workaround was to have the co-op partners turn in the quests rather than the host. Quest XP is also scaled to your level so XP disparity will be further widened.
Challenge progress is preserved across characters and playthroughs and XP only goes to the character that completes the challenge. All of a sudden, someone might complete a challenge they've been progressing towards with a different character and create a vast XP gap.
You get individual XP for small actions such as healing, buffs, breaking doors and the like which can also increase XP disparity.
XP Bonuses abound. You get extra XP from breaking bones, landing criticals, etc. You get a share of the XP if you deal some of the damage, with the person dealing the final blow getting the most XP. Players who don't participate in combat get very little of the XP. Due to different combat mechanics and tactics, it is very easy for an XP disparity to form.
As of the current version, "enemy's levels can now be adjusted independently for each co-op player," and this means that by default, each co-op player will individually see the same enemies at or around their own level and XP will be distributed in accordance with their level, furthering XP disparity. It's possible to turn this option off, at the bottom of the options menu.
Dead Island Co-op is Defective
All of a sudden people will sometimes jump in level for no apparent reason. Dead Island co-op is notoriously buggy and there are many modders working to try and address these concerns so you might try a mod or two to try and balance out the issues you've experienced, but there are no guaranteed fixes for this broken system.