You need to iterate though the enumerable returned by the recursive call and yield return
each of the items explicitly.
private IEnumerable<int> fibRec(int a, int b)
{
int tmp = a;
a = b;
b = tmp + b;
yield return a;
foreach(int val in fibRec(a, b))
{
yield return val;
}
}