ゲームが重くて動けない

残念ながら、銀の弾丸は存在しません
地道にプロファイリングと最適化を繰り返すしかないでしょう

まずWindowsとMacではハードウェア構成の違いがあり(特にMacはゲーム向けのGPUを載せたモデルがほぼ無いため)当然スペックも変わってきますので、同じように動く保証は全くありません
基本的にWindowsの方が自由度が高く、ゲーム向けの性能の良いハードウェア構成が組めるため、Windowsの方が快適に動作させられるでしょう

ハード参照が重い、というのはどちらかというとロード負荷やメモリ容量の問題です
経験上、ゲームの実行速度そのものにそこまで大きく影響した記憶がありません

諸事情により敵の種類が増え、EnemyBaseを継承しているためそこでもハード参照となってしまっています

同じBaseクラスを継承していても、互いの直接参照が存在しなければロード対象にはなりません
それでもロードされているなら、継承が原因ではなく別のものが原因です(Cast等)

GameThreadが重い、ということは純粋にゲーム中の動作が重いと予想されます
時間経過で負荷が増える部分に関しては、時間経過で敵AIが増えるようなゲームシステムを採用してたりしないでしょうか?
オブジェクトが増えれば当然処理負荷も増えます
敵のAI処理が何をしているかは知りませんが、個々の処理負荷や最大数などを考慮する必要があるでしょう

DrawCall(BasePass)も負荷の原因と思われます
コレもオブジェクト数に関連しています
そのフレームでレンダリングされるオブジェクトが減れば下がります

TextureSizeはGPU負荷の方に分類されます
小さくすれば軽くはなりますが、クオリティもその分落ちるため、バランスは考えたほうが良いでしょう

Meshに関してですが、LODについて調べてみてください
うまく設定できれば負荷の軽減に繋がります