Можно ли написать интерпретатор PHP на C#?
Ну давайте думать и смотреть. Написать лексер/парсер в ast можно за неделю, если вы имели хотя бы немного опыта в этом. Затем вам нужно как-то упростить дерево, транслировать его в опкоды (с тем набором функционала что вы описали выполнять рекурсивно дерево уже не выгодно, ибо слишком много нужно имплементить), на это уже нужно будет месяца 2-3, и это на вскидку, если выкинуть ООП то можно уложиться в недели 3. Затем идет очередь виртуальной машины - тут все просто. номер опкода - его реализация - результат. Это дело можно написать достаточно быстро, за неделю-две.
все описанное выше это очень оптимистично, с условием что вы знаете как реализован сам php, с учетом того что каким-то функционалом придется пожертвовать. Так что, очень маловероятно что вы успеете за 1,8 месяца, хотя это возможно (пускай и сложно).
p.s. Когда-то обучения ради писал на .NET итрерпритатор javascript (сильно урезанный), на что ушло где-то 240 часов. Но как по мне прототипное наследование реализовать чуть проще.
p.p.s. На мой взгляд вам стоит обратить внимание на llvm, существуют худо бедно рабочие трансляторы zend-овских опкодов в IR, готовые трансляторы самого php (правда сильно урезанные) в llvm-овский IR...
Всё сведется к копипастам огромных кусков кода и мольбе, что бы не упало на защите.
Вот пример Jint - Javascript Interpreter for .NET: jint.codeplex.com
Можете скачать, wc -l по каталогам и прикинуть сколько вы это будете только "набирать".