"Ma'am" is fine for an old lady, or any adult woman. Some women, however, are rather sensitive about this usage. They feel that "ma'am" suggests an "older" woman than they perceive themselves to be.
"Miss" is technically correct for an unmarried female of any age, even for young girls. If you don't know her well, "Miss" is always a safe bet.
"Boy" refers to a male under 12. Use his first name or "young man" in addressing a boy directly. As he matures, "young man" is still appropriate for a long time. "Sir" implies some degree of respect for the man so-addressed.