Oh wow this takes me back! I too learned Unreal during my studies but back then it was the Kismet system. For our semester 2 finals we had to create a level in UDK3 and this is what I came up with (I had modelled the Stargate in another class so…)
As for your project, one thing I cannot stress enough, is KISS - Keep it Stupid Simple. Your teacher will appreciate much more a complete demo with little flaws and that is fun - even if the mechanics are simple. Rather then an attempt at a complex system that feels wonky and has little content to show for. I’m not saying that your project will be wonky and flawed, but just something to keep in mind.
With that said, seeing as you seem to already be a ways into your project, here is a suggestion: Instead of going for the traditional turned based combat, create a “run away” game. Depending on the player stats, he can move x range and his turn happens more often or less often depending on his agility. Depending on this, the enemy will move before or after the player depending on their stats. If the enemy reaches the player, he loses(or takes dmg based on defense stat). The player must reach the exit on the grid and may have to unlock paths by picking up keys or such items. And the enemy may or may not chase the player depending on if they have line of sight of the player, so the player could hide behind walls to avoid enemies(The AI could do backflips in the meantime? :D). One way or the other, you will need a targeting system for the AI. Most of the movement mechanic you have already done, you would just need to add a level layout with static mesh which should automatically block pathing on the navmesh. And on level completion you could reward the player by choosing to either upgrade agility or movement range for the next level. This would be a simple mechanic using a SaveGame object. This would save you the work of having to create a combat system. You could still use the strength and defense stats. For example, the player could break certain walls or barriers down depending on his strength stat and could get hit multiple times depending on defense. If an AI manages to reach the player, the AI explodes, this would be a simple way to warrant the player having defense stat and also gets rid of that AI in one swoop. This is just an idea, but I think you would have a lot more time to focus on other projects and even adding fun elements to your demo instead of spending many hours creating more complex BP systems. I’m not trying to deter you from your current direction, but I know that in school, having many classes to attend to, it is easy to overload yourself with extensive projects and run out of time. Once you finish your studies, you will have all the time in the world to create intricate and complex games.
With all that said, if you are anything like me, this will probably only make you want to create your system even more I’m heck of stubborn, but then, I often miss out on sleep also > < Can’t have it all.
As far as updating your navmesh in real time, you could check this out How To Update NavMesh's Realtime [Tutorial] - Community & Industry Discussion - Epic Developer Community Forums
Basically just make sure that in your project settings. under Navigation Mesh, under Runtime, the check box Rebuild at Runtime is set to true, and the navmesh should update during runtime.
Good luck and keep working hard!