For questions about the library, I think you're best off at
https://groups.google.com/forum/#!forum/craftyjs
You can also search it to find existing answers to your question.
To paraphrase one of the answers here: you can divide your map into several sections, each at least as large as the screen. Make sure that the section where your player is, as well as the sections around it are always created. Once you move onto a neighbouring section, you destroy three old sections and create three new ones so that the player is in the center again.
How you do the bookkeeping is up to you. One way I could think of is to give all dynamically loaded entities a component to identify them as being on a certain map region (Crafty.e("MapRegionIndexX" + mapX + "Y" + mapY)) and store the way these components relate to the 3x3 region in a 2D-array. Once you move to a new region, you can delete the old ones by calling Crafty("MapRegionIndex to be deleted").each(function(){this.destroy()});
On the problem of scrolling when you move near the edge, Crafty has the possibility to automatically center the viewport on the player (check the API), functions in Crafty.viewport. You can probably achieve what you want by using the functions follow, pan, scroll, x and/or y.