The actual "Yellow Rose of Texas" was the nickname given to Emily West Morgan, a young woman was captured by General Antonio Lopez Santa Anna (known to most Texas school children as just plain Santa Anna) and his army, and influenced the Battle of San Jacinto.

Emily, together with a fellow indentured servant, were captured shortly before the battle of San Jacinto. She was made to act as mistress to the general, but as a loyal Texan was able to convince the young man who was captured along with her to inform General Sam Houston's army of the location of Santa Anna's camp, so that the Texans were able to take the Mexican army completely by surprise and win the battle quite quickly. She was later freed from capture and from her servitude as reward for her bravery.

The first recorded copy of "The Yellow Rose of Texas" was handwritten on a piece of paper circa 1836, and is thought to have probably been written shortly before or just after the battle, which took place on April 21, 1836. The song was originally written from the point of view of a black soldier, but was later changed and adopted as a battle song throughout the U.S.

RE: Why the rose was yellow;
The term "yellow" was often used in those days to describe a person of mixed racial decent, someone who's skin was neither "black" nor "white".

Most of this I was able to write from memory. Online source: http://alamo-de-parras.welkin.org/archives/yellowrose/yelrose.html