You could create an int variable and set it equal to numerator/denominator. This will do integer division meaning that it will truncate the remainder, and leave you with just the first part of the result you want to display. Then, you can take that value, multiply it by denominator, and subtract the result from numerator. Then just display what is now your numerator and denominator. Pretty sure this should work. Hope that makes sense.
In your operator <<, just do what I said above. You could start by declaring some temporary variables for the numerator and denominator, as well as one for the number out in front. Set that variable equal to numerator/denominator, and numerator equal to numerator minus the front number times denominator. Then just print these values out in the appropriate order.
You mean you had to pass the fraction class by non-constant reference? I don't see why you would have to do that. Everything passed to it should be able to be const.
I said to declare some new variables in your function (called num and denom or something) and put the value of output.numerator in num and output.denominator in denom. This is because you'll be changing the value of the numerator, but you don't want to actually change the value of the numerator in the fraction object that you pass in. Just declare those variables and use them in place of the numerator and denominator in the Fraction object, and you can make it const again.